Interfaces
En Java, una interfaz es una especificación de un conjunto de métodos que deben ser implementados por una clase. Una interfaz es similar a una clase abstracta, pero no puede contener implementaciones de métodos ni campos. En cambio, define solo la firma de los métodos que deben ser implementados.
Las interfaces son útiles para varios propósitos, como:
Permitir la implementación de múltiples herencias, ya que una clase puede implementar varias interfaces.
Proporcionar una forma de especificar el comportamiento esperado de una clase sin proporcionar una implementación específica.
Permitir que una clase proporcione una interfaz común para diferentes implementaciones.
Para implementar una interfaz en una clase, se utiliza la palabra clave "implements" en la declaración de la clase. Todos los métodos declarados en la interfaz deben ser implementados en la clase. Si una clase no implementa todos los métodos de una interfaz, la clase debe ser declarada como abstracta.
Por ejemplo, podríamos tener una interfaz llamada "Movable" con un método llamado "move()". La clase "Car" y "Person" podrían implementar la interfaz "Movable" y proporcionar implementaciones específicas para el método "move()", como "drive" y "walk" respectivamente.
Ejemplo:
interface Movable {
void move();
}
class Car implements Movable {
void move(){
System.out.println("drive");
}
}
class Person implements Movable {
void move(){
System.out.println("walk");
}
}
En este ejemplo, la interfaz "Movable" define un método "move()" que debe ser implementado por las clases "Car" y "Person". ambas clases proporcionan implementaciones específicas para el método "move()", como "drive" y "walk" respectivamente.
Además, una clase puede implementar múltiples interfaces, separando cada una con una coma, como por ejemplo:
class Car implements Movable, Electric{
void move(){
System.out.println("drive electric");
}
void charge(){
System.out.println("charging");
}
}
En este ejemplo se ve como la clase Car implementa dos interfaces Movable y Electric.