Interfaces (introducción y diferencias)
Defina interfaces, impleméntelas en clases y compárelas con las clases abstractas. Aprenda los métodos predeterminados y la implementación múltiple.
Interfaces (introducción y diferencias) es una lección gratuita de Java Academy en CoddyKit. Esta es la lección 2 de 3. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Java Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Java Academy incluye 3 lecciones en total.
¿Qué es una interfaz?
Interfaz: es un contrato que enumera las firmas de los métodos que una clase debe proporcionar. Úsela para describir una capacidad, como Drivable o Printable, sin fijar jerarquías de clases.
Código: implementar una interfaz
Las clases implementan interfaces para comprometerse a ofrecer cierto comportamiento. Puede hacer referencia al objeto mediante su tipo de interfaz y llamar a los métodos declarados.
public class Main {
// Interface that declares a capability
static interface Drivable {
void drive(); // method to implement
}
// A class implements the interface
static class Car implements Drivable {
public void drive() {
System.out.println("Car is driving");
}
}
public static void main(String[] args) {
Drivable d = new Car(); // upcast to interface
d.drive(); // runs Car's method
}
}
Interfaces frente a clases abstractas
Clase abstracta = relación es-un con código compartido. Interfaz = capacidad puede-hacer. Una clase puede extender una clase, pero implementar muchas interfaces, lo que mantiene los diseños flexibles y evita jerarquías demasiado profundas.
Código: método default
Las interfaces pueden tener métodos default con código. Las clases que implementan la interfaz heredan automáticamente ese pequeño comportamiento.
public class Main {
// Interface with a default method (has a body)
static interface Greeter {
void greet(String name);
default void sayBye() { // default provides a reusable tiny implementation
System.out.println("Bye");
}
}
static class SimpleGreeter implements Greeter {
public void greet(String name) {
System.out.println("Hello, " + name);
}
}
public static void main(String[] args) {
Greeter g = new SimpleGreeter();
g.greet("Ada");
g.sayBye(); // default method from the interface
}
}
Varias interfaces
Una clase puede implementar varias interfaces a la vez (por ejemplo, Drivable y Maintainable). Esto permite modelar capacidades sin imponer una cadena fija de superclases.
Código: varias interfaces
Una clase implementa ambas interfaces. Según el contexto, puede tratarla como Drivable, Maintainable o como su tipo concreto.
public class Main {
static interface Drivable { void drive(); }
static interface Maintainable { void maintain(); }
static class ServiceCar implements Drivable, Maintainable {
public void drive() { System.out.println("ServiceCar driving"); }
public void maintain() { System.out.println("ServiceCar maintenance"); }
}
public static void main(String[] args) {
ServiceCar s = new ServiceCar();
s.drive();
s.maintain();
}
}
Comprobación de las interfaces
Comprobación rápida: ¿Qué afirmación sobre las interfaces en Java es correcta?
Repaso
Repaso: Las interfaces definen contratos de comportamiento y las clases los implementan. Use los métodos default para pequeños fragmentos de código compartido y combine varias capacidades en una sola clase cuando sea necesario.
Preguntas frecuentes
¿La lección «Interfaces (introducción y diferencias)» es gratis?
Sí — el texto completo de «Interfaces (introducción y diferencias)» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Java Academy, actualiza a CoddyKit PRO. El curso de Java Academy incluye 3 lecciones en total.
¿Qué aprenderé en «Interfaces (introducción y diferencias)»?
Defina interfaces, impleméntelas en clases y compárelas con las clases abstractas. Aprenda los métodos predeterminados y la implementación múltiple. Practicas Java Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Java Academy?
No se requiere experiencia previa. Java Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 3.
¿Cuánto tiempo toma la lección «Interfaces (introducción y diferencias)»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Java Academy?
Sí. Cada lección de Java Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Clases abstractas
- Interfaces (introducción y diferencias)
- Conversión ascendente/descendente e instanceof