Java basic learning day48 (interfaz, similitudes y diferencias entre la interfaz y la clase abstracta, características de los miembros de la interfaz, varias relaciones de la interfaz)

1. Interfaz

  • la interfaz es una regla
  • Las interfaces solo se usan cuando varias clases necesitan definir las mismas reglas y los requisitos especiales de una clase no necesitan definir interfaces.

2. Similitudes y diferencias entre interfaz y clase abstracta

  • Una interfaz es una regla, una abstracción del comportamiento.
  • La clase abstracta es una abstracción de una clase de cosas, generalmente utilizada en las clases principales.
  • Al extraer métodos comunes, los métodos abstractos se definen porque el cuerpo del método no es uniforme y la clase en la que se encuentra el método abstracto es la clase abstracta.
  • Solo cuando todas las subclases tienen un método común, se puede escribir el método abstracto correspondiente en la clase padre abstracta. Cuando algunas subclases lo tienen y otras no, puede usar la interfaz.

3. Definición y uso de la interfaz

  • La interfaz se define con la palabra clave interfaz y las reglas se escriben entre llaves, es decir, el método abstracto
    interfaz pública nombre de la interfaz { método abstracto }

  • No se puede instanciar la interfaz, es decir, no se puede crear un objeto de interfaz
  • Existe una relación de implementación (clase de implementación) entre la interfaz y la clase, y la palabra clave implements se usa para indicar
    la clase pública nombre de clase implements nombre de interfaz { }
  • Subclase de la interfaz (clase de implementación)
    a. O reescriba todos los métodos abstractos en la interfaz (si se implementan múltiples interfaces, todos los métodos abstractos en todas las interfaces deben reescribirse, si hay métodos con el mismo nombre en múltiples interfaces, entonces puede reescribirlo una vez, es decir, puede reescribir todos los métodos con el mismo nombre)
    b. O es una clase abstracta

Aviso:

  • La relación de implementación entre la interfaz y la clase se puede implementar sola o varias
    clases públicas nombre de clase implementa nombre de interfaz 1, nombre de interfaz 2 { }
  • La clase de implementación también puede heredar una clase e implementar múltiples interfaces al mismo tiempo.
    public class nombre de clase extends parent class implements interface 1, interface 2 { }

4. Características de los miembros en la interfaz

  • Variable miembro
    A. Solo puede ser una constante
    B. Modificador predeterminado: public static final (predeterminado significa que, si no lo escribe, la máquina virtual lo agregará automáticamente)
  • constructor
    sin constructor
  • Método miembro
    a. Solo puede ser un método abstracto
    b. Modificador predeterminado: resumen público

Antes de JDK7: solo se pueden definir métodos abstractos en la interfaz
Nuevas funciones de JDK8: se pueden definir métodos con cuerpos de métodos en la interfaz
Nuevas funciones de JDK9: se pueden definir métodos privados en la interfaz

5. Diversas relaciones de interfaces

  • La relación entre clases y clases:
    relación de herencia, solo herencia única, no herencia múltiple, sino herencia de múltiples capas
  • La relación entre una clase y una interfaz
    se puede realizar mediante una sola implementación o mediante múltiples implementaciones. También es posible implementar múltiples interfaces mientras se hereda una clase (si se implementan múltiples interfaces, todos los métodos abstractos en todas las interfaces deben reescribirse, si Si hay métodos con el mismo nombre en varias interfaces, puede reescribirlos una vez, es decir, puede reescribir todos los métodos con el mismo nombre una vez).
  • La relación entre la interfaz y la relación de herencia de la interfaz
    puede ser herencia única, herencia múltiple o herencia de múltiples capas (si la clase de implementación implementa subinterfaces, todos los métodos de todas las interfaces (incluidas las clases principales) deben reescribirse)

Supongo que te gusta

Origin blog.csdn.net/u011453680/article/details/129333177
Recomendado
Clasificación