Heredar la interfaz e implementar múltiples interfaces

Preste atención al usar la interfaz, debe prestar atención a:

1. No hay bloque de código estático o método de construcción en la interfaz .

Recordatorio de puntos de conocimiento: el uso típico de bloques de código estático, utilizados para asignar valores a las variables miembro estáticas a la vez. Cuando se utiliza esta clase por primera vez, el bloque de código estático se ejecuta solo una vez , lo que es mejor que el bloque de código no estático.

No puedes escribir un método de construcción, puedes escribir nuevo.

2. El padre directo de una clase es único, pero una clase puede implementar múltiples interfaces al mismo tiempo.

formato:

public clas MyInterfaceImpl implementa MyInterfaceA, MyInterfaceB {

     // Sobrescribir todos los métodos abstractos

}

interfaz pública MyInterfaceA {método 
    vacío abstracto públicoA (); 
}
interfaz pública MyInterfaceB {método 
    vacío abstracto públicoB (); 
}
public class Demo06Interface implementa MyInterfaceA, MyInterfaceB { 
    @Override 
    public void methodA () { 
        System.out.println ("Override invalida el método abstracto A"); 
    } 

    @Override 
    public void methodB () { 
        System.out.println ("Override Rewrite el método abstracto B "); 
    }

}

3. Si hay métodos abstractos repetidos entre las múltiples interfaces implementadas por la clase de implementación , solo necesita anular y reescribir una vez.

@Override 
public void method () { 
    System.out.println ("Reemplazar y reescribir los métodos abstractos de las interfaces A y B"); 
}

4. Si la clase de implementación no anula todos los métodos abstractos en todas las interfaces, entonces la clase de implementación debe ser una clase abstracta.

5. Si hay métodos predeterminados duplicados entre las múltiples interfaces implementadas por la clase de implementación, la clase de implementación debe anular los métodos predeterminados en conflicto .

A 、 B

método vacío público predeterminadoDefault () { 
}

Clase de implementación:

@Override 
public void methodDefault () { 
    System.out.println ("Reemplazar el método abstracto que reescribe el conflicto entre A y B"); 
}

6. Si un método en una clase principal directa entra en conflicto con el método predeterminado en la interfaz, el método en la clase principal se utilizará primero.

public class Fu { 
    public void method () { 
        System.out.println ("El método miembro de la clase principal"); 
    } 
}
public interface MyInterface { 
    public default void method () { 
        System.out.println ("El método predeterminado de la interfaz"); 
    } 
}
la clase pública Zi extiende Fu implementa MyInterface { 
}
Zi zi = nuevo Zi (); 
zi.method ();

Ejecutar captura de pantalla:

 

Supongo que te gusta

Origin blog.csdn.net/wardo_l/article/details/113851600
Recomendado
Clasificación