Interfaces
Una interfaz es un contrato que define un conjunto de métodos que una clase debe implementar. En Java, una interfaz es un tipo de referencia, similar a una clase, que puede contener solo constantes, métodos abstractos, métodos predeterminados y métodos estáticos. No se pueden instanciar interfaces, pero se pueden implementar. Una clase puede implementar cualquier número de interfaces.
Definición
Una interfaz en Java se define con la palabra clave interface
. A continuación, se muestra un ejemplo de una interfaz simple:
En este ejemplo, la interfaz Animal
define dos métodos: eat
y sleep
. Las interfaces no pueden contener implementaciones de métodos, solo la firma de los métodos.
Constantes
Las interfaces pueden contener constantes. Las constantes en una interfaz son implícitamente public
, static
y final
. A continuación, se muestra un ejemplo de una interfaz con una constante:
En este ejemplo, MAX_AGE
es una constante que se puede acceder a través de la interfaz Animal
.
Implementación
Una clase implementa una interfaz utilizando la palabra clave implements
. A continuación, se muestra un ejemplo de una clase que implementa la interfaz Animal
:
En este ejemplo, la clase Dog
implementa la interfaz Animal
y proporciona implementaciones para los métodos eat
y sleep
.
Herencia de interfaces
Una interfaz puede extender una o más interfaces. A continuación, se muestra un ejemplo de una interfaz que extiende otra interfaz:
En este ejemplo, la interfaz Pet
extiende la interfaz Animal
y agrega un nuevo método play
.
Interfaces funcionales
Una interfaz funcional es una interfaz que contiene un solo método abstracto. A partir de Java 8, las interfaces funcionales se pueden anotar con la anotación @FunctionalInterface
. A continuación, se muestra un ejemplo de una interfaz funcional:
En este ejemplo, la interfaz Calculator
es una interfaz funcional con un solo método calculate
.
Métodos predeterminados
A partir de Java 8, las interfaces pueden contener métodos predeterminados. Un método predeterminado es un método que tiene una implementación predeterminada en la interfaz. A continuación, se muestra un ejemplo de una interfaz con un método predeterminado:
En este ejemplo, la interfaz Animal
contiene un método predeterminado breathe
que tiene una implementación predeterminada.
Métodos estáticos
A partir de Java 8, las interfaces pueden contener métodos estáticos. Un método estático es un método que se puede invocar sin crear una instancia de la interfaz. A continuación, se muestra un ejemplo de una interfaz con un método estático:
En este ejemplo, la interfaz Animal
contiene un método estático makeSound
que se puede invocar sin crear una instancia de la interfaz.
Ejemplo
A continuación, se muestra un ejemplo completo que demuestra el uso de interfaces en Java:
Para nuestro proyecto
En el proyecto de RPG, podríamos definir una interfaz Randomized
que contenga un método algunos métodos para generar números aleatorios.
La interfaz Randomized
Resumen
Una interfaz en Java es un contrato que define un conjunto de métodos que una clase debe implementar.
Las interfaces pueden contener métodos abstractos, métodos predeterminados, métodos estáticos y constantes.
Una clase implementa una interfaz utilizando la palabra clave
implements
.Una interfaz puede extender una o más interfaces.