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

Tabla de contenido:

Anonim

¿Qué es la interfaz en Java?

Una interfaz en la programación de Java se define como un tipo abstracto utilizado para especificar el comportamiento de una clase. Una interfaz Java contiene constantes estáticas y métodos abstractos. Una clase puede implementar múltiples interfaces. En Java, las interfaces se declaran mediante la palabra clave interface. Todos los métodos de la interfaz son implícitamente públicos y abstractos.

Sintaxis para declarar interfaz

interface {//methods}

Para usar una interfaz en su clase, agregue la palabra clave "implements" después de su nombre de clase seguida del nombre de la interfaz.

Ejemplo de implementación de interfaz

class Dog implements Pet
interface RidableAnimal extends Animal, Vehicle

Haga clic aquí si el video no es accesible

¿Por qué se requiere una interfaz?

Para comprender mejor el concepto de Interfaz Java, veamos un ejemplo. La clase "Media Player" 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 de "unidad combinada" hereda tanto el CD como el DVD (vea la 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 la herencia múltiple.

Ahora tomemos otro ejemplo de Dog.

Suponga que tiene un requisito donde la clase "perro" hereda la clase "animal" y "Mascota" (vea la imagen a continuación). Pero no puede extender dos clases en Java. Entonces, ¿qué harías? La solución es Interface.

El libro de reglas para la interfaz dice:

  • Una interfaz es 100% de clase abstracta y solo tiene métodos abstractos.
  • La clase puede implementar cualquier número 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.

interfaz Pet {prueba de vacío público ();}clase Dog implements Pet {prueba de vacío público () {System.out.println ("Método de interfaz implementado");}public static void main (String args []) {Mascota p = perro nuevo ();p.test ();}}

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

Diferencia entre clase e interfaz

Clase Interfaz
En clase, puede instanciar una variable y crear un objeto. En una interfaz, no puede instanciar una variable 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 que se utilizan con las clases son privados, protegidos y públicos.

En la interfaz, solo se usa un especificador: público.

¿Cuándo usar la interfaz y la clase abstracta?

  • Utilice una clase abstracta cuando sea necesario definir una plantilla para un grupo de subclases
  • Utilice una interfaz cuando sea necesario definir un rol para otras clases, independientemente del árbol de herencia de estas clases

Debe conocer datos sobre la interfaz

  • 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 debe proporcionar funcionalidad para los métodos declarados en la interfaz.
  • Todos los métodos en una interfaz son implícitamente públicos y abstractos
  • No se puede crear una instancia de una interfaz
  • Una referencia de interfaz puede apuntar a 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, se debe inicializar la variable de interfaz. De lo contrario, el compilador arrojará un error.
  • La clase no puede implementar dos interfaces en java que tengan métodos con el mismo nombre pero un tipo de retorno diferente.

Resumen :

  • La clase que implementa la interfaz debe proporcionar funcionalidad para los métodos declarados en la interfaz.
  • Todos los métodos en una interfaz son implícitamente públicos y abstractos
  • No se puede crear una instancia de una interfaz
  • Una referencia de interfaz puede apuntar a 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