Red de conocimiento informático - Material del sitio web - En Java, ¿qué es una interfaz y cuáles son sus características?

En Java, ¿qué es una interfaz y cuáles son sus características?

La interfaz Java (Interfaz) es una serie de declaraciones de métodos y una colección de características de métodos. Una interfaz solo tiene características de método pero no tiene implementación de método, por lo que estos métodos pueden ser utilizados por diferentes clases en diferentes lugares. , y estas implementaciones pueden tener diferentes comportamientos (funcionalidad).

1. Significado de la interfaz:

1. La interfaz Java, una estructura que existe en el lenguaje Java, tiene una sintaxis y una estructura específicas. 2. Una colección de características de métodos que posee; clase, es una abstracción lógica.

La primera se llama "interfaz Java" y la segunda se llama "interfaz".

La interfaz Java en sí no tiene ninguna implementación, porque la interfaz Java no implica representación, solo describe el comportamiento público, por lo que la interfaz Java es más abstracta que la clase abstracta Java.

Los métodos de las interfaces Java sólo pueden ser abstractos y públicos. Las interfaces Java no pueden tener constructores. Las interfaces Java pueden tener propiedades públicas, estáticas y finales.

2. ¿Por qué utilizar interfaces? Java es un lenguaje de herencia única. Si desea agregar nuevas funciones a una clase específica que ya tiene una clase padre, bajo el principio de OCP, la solución es agregar una. clase padre a su clase padre, o padre de la clase padre de su clase padre hasta que se mueva a la parte superior de la jerarquía de clases. De esta manera, diseñar la capacidad de conexión de una clase específica se convierte en una modificación de todas las clases en toda la jerarquía.

Cuando hay una interfaz, en el ejemplo anterior, no es necesario mantener todas las clases en toda la estructura jerárquica.

3. p >Cualquier clase en una jerarquía puede implementar una interfaz. Esta interfaz afectará a todas las subclases de esta clase, pero no afectará a ninguna superclase de esta clase. Esta clase tendrá que implementar los métodos especificados por esta interfaz, y sus subclases pueden heredar automáticamente estos métodos de esta clase. Por supuesto, también puede optar por reemplazar todos estos métodos, o algunos de ellos. Capacidad de conexión (y se puede cargar con este tipo de interfaz, pasando todas las subclases que lo implementan).

Las interfaces proporcionan capacidad de conexión en asociación y llamada de métodos. Cuanto mayor sea la escala del sistema de software, más largo será el ciclo de vida. Las interfaces garantizan la flexibilidad y la escalabilidad del sistema de software.

Es la interfaz que hace posible expandir la herencia única de Java (implementando la herencia múltiple en una dirección variable). 3. Estructura jerárquica de tipos. Las interfaces Java (y clases abstractas) se utilizan generalmente como punto de partida para una; jerarquía del tipo.

Si una clase ya tiene un supertipo primario, al implementar una interfaz, la clase puede tener otro supertipo secundario. Este supertipo secundario se llama tipo mixto.

IV. Clasificación de la interfaz Java

1. Interfaz ordinaria (que contiene definiciones de métodos) public?interface?ActionListener{public?abstract?void?actionPerformed(ActionEvent?event);} p>

2. Interfaz de identificación (sin ningún método ni definición de atributos) La interfaz de identificación es una interfaz sin métodos ni atributos. La interfaz de identificación no tiene ningún requisito semántico sobre la clase que la implementa. La clase que lo implementa pertenece a un tipo específico.

public?interface?Serializable{};

3. La interfaz constante se refiere al uso de una interfaz Java para declarar algunas constantes y luego usar estas constantes por parte de la clase que implementa esta interfaz.

public?interface?AppConstants{public?static?final?DATA_SOURCE_NAME="test"; public?static?final?USER_NAME="test"; public?static?final?PASSWORD="test";}

5. Características de las interfaces

1. De forma predeterminada, las variables miembro en las interfaces Java son de tipo público, estático y final (todas pueden omitirse) y deben inicializarse explícitamente. es decir, interfaz Las variables miembro son constantes (mayúsculas, separadas por "_" entre palabras)

2 De forma predeterminada, los métodos en la interfaz Java son tipos públicos y abstractos (todos se pueden omitir). y no hay cuerpo de método. No se puede crear una instancia

3. La interfaz Java solo puede contener variables miembro públicas, estáticas y de tipo final y métodos miembros públicos y abstractos

4. No hay ningún método constructor en la interfaz, no se puede crear una instancia 5. Una interfaz no puede implementar otra interfaz, pero puede heredar varias otras interfaces

6 Las interfaces Java deben implementar sus métodos abstractos a través de clases

.

7. Cuando una clase implementa una interfaz Java, debe implementar todos los métodos abstractos en la interfaz; de lo contrario, la clase debe declararse como una clase abstracta.

8. permitido (creación de instancias), pero se permite definir una variable de referencia de un tipo de interfaz, que hace referencia a una instancia de una clase que implementa esta interfaz

9. puede implementar múltiples interfaces que implementan indirectamente la herencia múltiple.

6. La diferencia entre las interfaces Java y las clases abstractas de Java El enfoque del diseño orientado a objetos es la abstracción. Las clases e interfaces abstractas se encuentran en el nivel superior del árbol de herencia.

Puntos similares:

1. Representa la capa de abstracción del sistema. Cuando un sistema usa una clase en un árbol de herencia, debe intentar declarar la variable de referencia como la abstracción superior. del árbol de herencia. Tipo, que puede mejorar el acoplamiento entre los dos sistemas

2. Ninguno de ellos puede ser instanciado

3. Ambos contienen métodos abstractos. qué puede proporcionar el sistema. ¿Qué servicios no incluyen cuerpos de métodos?

1. La mayor diferencia es que las clases abstractas de Java pueden proporcionar una implementación parcial de ciertos métodos, pero las interfaces de Java probablemente no puedan; abstracción La única ventaja de la clase, pero esta ventaja es muy útil.

Puede agregar un nuevo método concreto a una clase abstracta y todas las subclases obtendrán automáticamente este método, pero si agrega un nuevo método a una interfaz Java, todas las clases que implementen esta interfaz no lo harán correctamente; compilado., debe agregar manualmente la implementación de este método a cada clase que implemente esta interfaz;

2. La implementación de una clase abstracta solo puede ser dada por una subclase, es decir, la implementación solo puede ser proporcionada por una subclase. definirse en la clase abstracta En la jerarquía de herencia, por lo tanto, la efectividad de las clases abstractas como herramienta de definición de tipos se reduce considerablemente;

Interfaz Java, cualquier clase que implemente un método especificado por una interfaz Java puede tener el tipo de esta interfaz, y una clase puede implementar cualquier número de interfaces Java, por lo que esta clase tiene múltiples tipos.

Como se puede ver en lo anterior: la interfaz Java es una herramienta ideal para definir tipos mixtos. Las clases mixtas indican que una clase no solo tiene el comportamiento de un determinado tipo principal, sino que también tiene otros comportamientos secundarios.

3. Combinando las ventajas respectivas de las clases abstractas y las interfaces Java en los puntos 1 y 2, surge un patrón de diseño clásico:

El trabajo de declarar tipos todavía corre a cargo de las interfaces Java. , pero al mismo tiempo se proporciona una clase abstracta Java? que implementa esta interfaz, y otras clases concretas que pertenecen a este tipo abstracto pueden optar por implementar esta interfaz Java, o pueden optar por heredar esta clase abstracta, es decir, en la jerarquía, la interfaz Java? está en la parte superior, seguida de cerca por la clase abstracta. Las mayores ventajas de estas dos se pueden aprovechar al máximo. Este modo es el "modo de adaptación predeterminado".

Este patrón se utiliza en la API del lenguaje Java y todos siguen ciertas convenciones de nomenclatura: ¿Resumen? + nombre de la interfaz.

7. Principios generales para el uso de interfaces y clases abstractas:

1. Usar las interfaces como una ventana para que el sistema interactúe con el mundo exterior (. otro sistema), la interfaz Promete a los usuarios qué servicios puede proporcionar el sistema. Desde la perspectiva del sistema mismo, la interfaz determina qué servicios debe implementar el sistema. La interfaz es el tipo abstracto de más alto nivel en el sistema. puede mejorar el acoplamiento entre los dos sistemas Sistema A La interacción a través del sistema B significa que cuando el sistema A accede al sistema B, declara una variable de referencia como el tipo de interfaz en el sistema B. La variable de referencia se refiere a una instancia de la clase de implementación del. interfaz en el sistema B.

¿interfaz?pública?B{}

clase?pública?C?implementos?B{}

clase?pública?A{?B?a? =?new?C();?}

2. La interfaz Java en sí debe ser muy estable Una vez que se formula la interfaz Java, no se permite cambiarla a voluntad, de lo contrario afectará al exterior. usuarios y el propio sistema 3. Utilice clases abstractas para personalizar los puntos de extensión en el sistema. Las clases abstractas completan parte de la implementación y algunas funciones se implementan a través de sus subclases.