Las interfaces son una de las características básicas del lenguaje de programación Java. Le permiten proporcionar un conjunto de métodos que los usuarios pueden llamar para interactuar con su código, sin comprender su implementación. Sin embargo, para ser un desarrollador de Java competente, debe saber cómo funcionan.

En este artículo aprenderás qué son las interfaces de Java, para qué sirven y cómo usarlas. Para comprender cómo funcionan las interfaces, debe saber qué es una clase y cómo funciona la herencia, así que léalas primero si es necesario.
Abstracción de datos en Java
En Java, la abstracción de datos es una forma de ocultar ciertos detalles de una clase, mostrando al usuario solo lo que necesita saber.
Por ejemplo, como usuario de una computadora, sabe que si presiona una tecla en su teclado, el carácter asociado con esa tecla se imprimirá en su monitor. Sin embargo, no sabe lo que sucede debajo del capó: es una abstracción.
Una forma de obtener abstracción de datos en Java es usar clases y métodos abstractos. Para hacer que una clase o método sea abstracto, simplemente defínalo con resumen palabra clave:
los Persona La clase anterior es una clase abstracta, por lo que no se puede usar para crear un objeto. Intentar hacer esto generará un error:
Para acceder a una clase abstracta, se debe heredar de otra clase llamada subclase. Esta subclase debe implementar el cuerpo de cada método abstracto declarado en la clase abstracta. Vea el ejemplo a continuación:
Las interfaces de Java van un paso más allá al abstraerse de toda la clase, no solo de métodos específicos. Cada método en la interfaz se declara sin cuerpo y cada campo es público, final y estático de forma predeterminada.
¿Qué es una interfaz en Java?
En Java, la interfaz es similar a una clase abstracta en la mayoría de los casos. Al igual que con las clases abstractas regulares, no puede crear un objeto desde una interfaz.
Gracias a la interfaz, tiene una abstracción completa de clases: ningún método declarado en la interfaz puede tener contenido. En cambio, el cuerpo de todos los métodos debe implementarse en la clase que implementa la interfaz. Por ejemplo:
Aquí Persona la interfaz tiene un campo público y dos métodos de interfaz: hablar y saludar. los una persona alta Luego, la clase implementa la interfaz y proporciona contenido para sus dos métodos; si no lo hace, se producirá un error. luego adentro Mujer clase, puede crear un objeto a partir de una clase de implementación y llamar a cualquiera de sus métodos.
Implementación de múltiples interfaces en Java
En Java, una clase también puede implementar múltiples interfaces, lo que le permite implementar cualquier cantidad de ellas. En el siguiente ejemplo Mamífero La clase implementa las cuatro interfaces declaradas en ella:
Una vez más, los métodos declarados en cada una de las interfaces implementadas deben anularse en la clase de implementación. Si no lo hace, obtendrá un error que indica que ha implementado un método abstracto heredado en su clase de implementación.
Crear una interfaz que amplíe múltiples interfaces en Java
Una interfaz en Java también puede abarcar múltiples interfaces. Esto es útil para agrupar interfaces relacionadas. Para que una interfaz amplíe una o más interfaces, simplemente use se estira palabra clave Aquí hay un ejemplo:
los Hombre la interfaz se expande Gato, Perroy Murciélago. Como consecuencia Mamífero la clase solo necesita implementar Hombreque puede acceder a las otras tres interfaces.
Funciones añadidas a las interfaces en JDK 8
Si está utilizando JDK 8 o posterior, puede especificar la implementación predeterminada de los métodos de interfaz: ¡las interfaces ahora pueden tener cuerpos de métodos! Puedes hacer esto con defecto y estático métodos en las interfaces.
En el ejemplo de abajo dentro Pruebaimplementamos cuerpo para un método estático mostrar. Como resultado, la clase que implementa Prueba tal vez solo use el valor predeterminado mostrar método – o reemplácelo si es necesario:
Además, ahora puede definir métodos estáticos en la interfaz. Se pueden llamar de forma independiente sin crear primero el objeto. Por ejemplo:
Comprender las interfaces en Java
En Java, se utiliza una interfaz para implementar la abstracción completa en las clases. Esto significa que, de forma predeterminada, todos los campos son estáticos, públicos y finales. También significa que todos los métodos en la interfaz no pueden tener contenido: el contenido debe implementarse en la clase que implementa la interfaz. La excepción es Java 8, donde los cuerpos de las funciones se pueden implementar en las interfaces.
Una clase puede implementar múltiples interfaces. En este caso, la clase de implementación debe contener el cuerpo de implementación de todos los métodos declarados en las interfaces.
Finalmente, una interfaz también puede extender una o más interfaces. Cuando eso sucede, la clase simplemente necesita implementar una de las interfaces (la que extiende las otras) para acceder a las demás.









