palabra clave de interfaz: Java

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
  • ¡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

Supongo que te gusta

Origin blog.csdn.net/E_chos/article/details/113347369
Recomendado
Clasificación