La Red de Conocimientos Pedagógicos - Currículum vitae - La diferencia entre interfaces e interfaces abstractas en proyectos Java reales

La diferencia entre interfaces e interfaces abstractas en proyectos Java reales

1. Similitudes:

Ambas son clases abstractas y no se pueden crear instancias.

B. Tanto la clase de implementación de la interfaz como las subclases de la clase abstracta deben implementar el método abstracto declarado.

2. Diferencias:

A. Las interfaces deben implementarse e implementarse, mientras que las clases abstractas deben heredarse y ampliarse.

Una clase puede implementar múltiples interfaces, pero una clase solo puede heredar una clase abstracta.

C. Las interfaces enfatizan la implementación de funciones específicas y las clases abstractas enfatizan las relaciones.

D.

Aunque las interfaces implementan clases y abstracciones.

Todas las subclases de una clase deben implementar el método abstracto correspondiente, pero la forma de implementación es diferente. Cada método en la interfaz es un método abstracto y solo se declara.

(Declaración, sin cuerpo de método), la clase de implementación debe implementarlo. Opcionalmente se pueden implementar subclases de clases abstractas. Esta elección tiene dos significados:

Primero, no todos los métodos de la clase abstracta son abstractos. Sólo aquellos métodos con resumen son abstractos y deben ser implementados por subclases. Para aquellos métodos que no son abstractos, el cuerpo del método debe definirse en la clase abstracta.

En segundo lugar, las subclases de clases abstractas pueden heredar o anular directamente métodos no abstractos cuando los heredan. Para los métodos abstractos, puede optar por implementarlos o puede declarar sus métodos como abstractos nuevamente y dejarlos así; Sus subclases se implementan sin implementar, pero esta clase también debe declararse abstracta. Es una clase abstracta y, por supuesto, no se pueden crear instancias.

E. Las clases abstractas son las intermediarias entre interfaces y clases.

La conexión

es completamente abstracta. Solo se pueden declarar métodos, y solo se pueden declarar métodos públicos. No se pueden declarar métodos privados y protegidos, y no se pueden definir cuerpos de métodos. /p >

Las variables de instancia no se pueden declarar. Sin embargo, la interfaz puede declarar variables constantes y no es difícil encontrar ejemplos de este tipo en JDK. Sin embargo, colocar una variable constante en una interfaz viola su conexión.

El propósito de la interfaz también confunde los diferentes valores de las interfaces y las clases. Si es necesario, se puede colocar en la clase o clases abstractas correspondientes.

Resumen

Las clases juegan un papel conector en interfaces y clases. Por un lado, una clase abstracta es abstracta y puede declarar métodos abstractos para estandarizar las funciones que las subclases deben implementar; por otro lado, puede definir un cuerpo de método predeterminado para que las subclases lo utilicen o lo anulen directamente; Además, puede definirse a sí mismo.

Variables de instancia utilizadas por las subclases mediante herencia.

3. Aplicación de interfaces

A. Las clases requieren que se coordinen interfaces específicas antes de la clase, independientemente de cómo se implementen.

B. Existe como un logotipo que puede implementar funciones específicas, o puede ser un logotipo puro sin ningún método de interfaz.

C. Un grupo de clases debe tratarse como una sola clase y la persona que llama se comunica con este grupo de clases solo a través de la interfaz.

d. Es necesario implementar muchas funciones específicas, y estas funciones pueden no tener ninguna relación.

4. Ocasiones de aplicación de clases abstractas

En resumen, puedes usarlo cuando necesites tanto una interfaz unificada como variables de instancia o métodos predeterminados. Los más comunes son:

A. Defina un conjunto de interfaces, pero no quiera forzar a cada clase de implementación a implementar todas las interfaces. Puede utilizar una clase abstracta para definir un conjunto de cuerpos de métodos, incluso cuerpos de métodos vacíos, y luego las subclases pueden elegir los métodos que les interesan cubrir.

B. En algunos casos, la coordinación entre clases no se puede satisfacer solo a través de interfaces puras, y es necesario distinguir diferentes relaciones a través de variables que representan estados en la clase. La mediación abstracta sirve bien para esto.

C. Un conjunto coordinado de métodos está estandarizado. Algunos métodos son iguales, independientes del estado y se pueden disfrutar sin subclases. Otros métodos requieren que cada subclase implemente funciones específicas de acuerdo con su propio estado específico.