palabra clave de interfaz – Java
1. Instrucciones de uso
- Las interfaces se definen usando interface
- En Java, las interfaces y las clases son dos estructuras yuxtapuestas
- Cómo definir una interfaz: Definición de los miembros en una interfaz
- DK7 y anteriores: solo se pueden definir constantes globales y métodos abstractos
- Constantes globales: public static final, pero al escribir se puede omitir
- Método abstracto: resumen público
- JDK8: además de definir constantes globales y métodos abstractos, también se pueden definir métodos estáticos y métodos predeterminados
- DK7 y anteriores: solo se pueden definir constantes globales y métodos abstractos
- ¡Los constructores no se pueden definir en las interfaces! significa que la interfaz no puede ser instanciada
- En el desarrollo de Java, las interfaces se utilizan haciendo que las clases las implementen.
- Si la clase de implementación cubre todos los métodos abstractos en la interfaz, la clase de implementación se puede instanciar
- Si la clase de implementación no cubre todos los métodos abstractos en la interfaz, la clase de implementación sigue siendo una clase abstracta
- Las clases de Java pueden implementar múltiples interfaces -> compensar las limitaciones de la herencia única de Java
格式:clase AA extiende implementos BB CC, DD, EE
- Las interfaces se pueden heredar y son posibles herencias múltiples
- El uso específico de la interfaz refleja polimorfismo.
- La interfaz, de hecho, puede verse como una especificación
2. La nueva especificación sobre la interfaz en Java8
- El método estático definido en la interfaz solo se puede llamar a través de la interfaz (no se puede usar la clase instanciada)
- Al implementar el objeto de la clase, se puede llamar al método predeterminado en la interfaz; si la clase que implementa reescribe el método predeterminado en la interfaz, al llamar, todavía llama al método anulado
- Si la subclase (clase de implementación) hereda el método predeterminado con el mismo nombre y parámetros en la interfaz implementada por la clase principal, entonces la subclase llamará al método con el mismo nombre y parámetros en la clase principal de forma predeterminada sin reescribir este método. —>Métodos con el mismo nombre y los mismos parámetros en la clase principal y la interfaz, el principio de prioridad de clase
- Si la clase de implementación implementa múltiples interfaces, y estas múltiples interfaces definen métodos predeterminados con el mismo nombre y parámetros, y la clase de implementación no anula este método, se informará un error -> conflicto de interfaz
- Cómo llamar a métodos anulados en clases principales e interfaces en métodos de subclases (o clases de implementación)
publicvoid myMethod(){
method3();//调用自己定义的重写的方法
super.method3();//调用的是父类中声明的
//调用接口中的默认方法
CompareA.super.method3();
CompareB.super.method3();
}
3. Clase abstracta vs interfaz
- El mismo punto: no se puede instanciar; ambos pueden contener métodos abstractos
- diferencia
- Definición y estructura interna de clases e interfaces abstractas
- Clase: herencia simple ----- interfaz: herencia múltiple