Interfaces
Perfilado de sección
-
INTERFACES
Una interfaz es un contrato 100% abstracto que define qué debe hacer una clase, pero no cómo debe hacerlo. Especifica un conjunto de métodos que las clases que la implementen están obligadas a desarrollar.
Java no permite la herencia múltiple de clases (una clase no puede hacer extends A, B). Sin embargo, una clase sí puede implementar múltiples interfaces (implements X, Y). Esto permite simular herencia múltiple de comportamiento.
Analogía: Un tomacorriente eléctrico estándar. No importa qué aparato conectes (un cargador, una licuadora, un televisor), siempre y cuando el enchufe del aparato cumpla con la "interfaz" (la forma de las clavijas y el voltaje), funcionará.
Ejemplo en Java
java
// Definición de la Interfaz
interface Conectable {
void encender(); // Los métodos son implícitamente públicos y abstractos
void apagar();
}
// Clase que implementa la interfaz
class Televisor implements Conectable {
private boolean encendido = false;
@Override
public void encender() {
encendido = true;
System.out.println("Televisor: Pantalla mostrando el logotipo de inicio.");
}
@Override
public void apagar() {
encendido = false;
System.out.println("Televisor: Pantalla a negro.");
}
}
// Otra clase totalmente distinta que también implementa la interfaz
class Bombillo implements Conectable {
@Override
public void encender() {
System.out.println("Bombillo: Filamento brillando con luz cálida.");
}
@Override
public void apagar() {
System.out.println("Bombillo: Luz apagada.");
}
}