¿Qué es la interfaz en Java con un ejemplo?

¿Qué es una interfaz?

Una interfaz es como Java Class, pero solo tiene constantes estáticas y método abstracto. Java usa la interfaz para implementar herencia múltiple. Una clase Java puede implementar múltiples interfaces Java. Todos los métodos en una interfaz son implícitamente públicos y abstractos.

Sintaxis para declarar la interfaz

Para usar una interfaz en su clase, agregue la palabra clave “implementa” después del nombre de su clase seguido del nombre de la interfaz.

Ejemplo para la implementación de la interfaz

¿Por qué se requiere una interfaz?

Para comprender mejor el concepto de la interfaz Java, veamos un ejemplo. La clase “Reproductor multimedia” tiene dos subclases: reproductor de CD y reproductor de DVD. Cada uno tiene su método de implementación único para reproducir música.

Otra clase, “Combo drive”, hereda tanto CD como DVD (ver imagen a continuación). ¿Qué método de juego debería heredar? Esto puede causar serios problemas de diseño. Y, por lo tanto, Java no permite herencia múltiple.

Ahora tomemos otro ejemplo de Dog.

Supongamos que tiene un requisito en el que la clase “perro” hereda la clase “animal” y “mascota” (ver imagen a continuación). Pero no puedes extender dos clases en Java. Entonces, ¿qué harías? La solución es Interface.

El libro de reglas de la interfaz dice:

  • Una interfaz es una clase 100% abstracta y solo tiene métodos abstractos.
  • La clase puede implementar cualquier cantidad de interfaces.

Class Dog puede extenderse a la clase “Animal” e implementar la interfaz como “Pet”.

Ejemplo de interfaz Java:

Paso 1) Copie el siguiente código en un editor.

Paso 2) Guarde, compile y ejecute el código. Observe la salida.

Diferencia entre clase e interfaz

Clase Interfaz
En clase, puede crear instancias de variable y crear un objeto. En una interfaz, no puede crear instancias de variables y crear un objeto.
La clase puede contener métodos concretos (con implementación) La interfaz no puede contener métodos concretos (con implementación)
Los especificadores de acceso utilizados con las clases son privados, protegidos y públicos. En la interfaz solo se utiliza un especificador: público.

¿Cuándo usar Interface y Abstract Class?

  • Use una clase abstracta cuando se necesita definir una plantilla para un grupo de subclases
  • Use una interfaz cuando se debe definir un rol para otras clases, independientemente del árbol de herencia de estas clases

Debe conocer hechos sobre Interface

  • Una clase Java puede implementar múltiples interfaces Java. Es necesario que la clase implemente todos los métodos declarados en las interfaces.
  • La clase debe anular todos los métodos abstractos declarados en la interfaz
  • La interfaz permite enviar un mensaje a un objeto sin importar a qué clases pertenece.
  • La clase necesita proporcionar funcionalidad para los métodos declarados en la interfaz.
  • Todos los métodos en una interfaz son implícitamente públicos y abstractos
  • Una interfaz no puede ser instanciada
  • Una referencia de interfaz puede señalar objetos de sus clases de implementación
  • Una interfaz puede extenderse desde una o varias interfaces. La clase puede extender solo una clase pero implementar cualquier cantidad de interfaces
  • Una interfaz no puede implementar otra interfaz. Tiene que ampliar otra interfaz si es necesario.
  • Una interfaz que se declara dentro de otra interfaz se denomina interfaz anidada
  • En el momento de la declaración, la variable de interfaz debe inicializarse. De lo contrario, el compilador lanzará un error.
  • La clase no puede implementar dos interfaces en Java que tengan métodos con el mismo nombre pero diferente tipo de devolución.

Resumen :

  • La clase que implementa la interfaz necesita proporcionar funcionalidad para los métodos declarados en la interfaz
  • Todos los métodos en una interfaz son implícitamente públicos y abstractos
  • Una interfaz no puede ser instanciada
  • Una referencia de interfaz puede señalar objetos de sus clases de implementación
  • Una interfaz puede extenderse desde una o varias interfaces. Una clase puede extender solo una clase pero implementar cualquier cantidad de interfaces

 

0 replies

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply

Your email address will not be published. Required fields are marked *