📘 Manual de Superclases en Java
🔹 ¿Qué es una Superclase?
Una superclase es la clase base que define atributos y métodos comunes. Las subclases heredan esta funcionalidad para evitar duplicación y fomentar modularidad.
public class Animal {
String nombre;
public void hacerSonido() {
System.out.println("Sonido genérico");
}
}
🔹 Herencia con extends
La palabra clave extends indica que una clase hereda de otra.
public class Perro extends Animal {
public void hacerSonido() {
System.out.println("Guau guau");
}
}
🔹 Uso de super
Accede a miembros de la superclase desde la subclase.
public class Gato extends Animal {
public Gato() {
super("Gatito");
}
public void hacerSonido() {
super.hacerSonido();
System.out.println("Miau");
}
}
🔹 Diseño Modular
| Superclase | Subclase | Método sobrescrito |
|---|---|---|
| PanelPedagogico | PanelMigracion | renderizarContenido() |
| UsuarioBase | UsuarioMigrante | getPerfilNarrativo() |
| ErrorTecnico | ErrorEmocional | mostrarFeedback() |
public class ErrorTecnico {
public String getMensaje() {
return "Error genérico";
}
}
public class ErrorEmocional extends ErrorTecnico {
@Override
public String getMensaje() {
return "Ups... algo salió mal, pero podemos aprender de esto.";
}
}
🧬 ¿Qué es una Subclase en Java?
Una subclase en Java es una clase que hereda de una superclase. Esto permite reutilizar código, sobrescribir comportamientos y extender funcionalidades.
Se define usando la palabra clave extends, y puede acceder a miembros de la superclase mediante super.
public class Animal {
public void hacerSonido() {
System.out.println("Sonido genérico");
}
}
public class Perro extends Animal {
@Override
public void hacerSonido() {
System.out.println("Guau guau");
}
}
Aquí, Perro es una subclase que sobrescribe el método hacerSonido() de Animal.
- ✅ Hereda atributos y métodos públicos o protegidos.
- ✅ Puede sobrescribir métodos con
@Override. - ✅ Puede agregar nuevos atributos y métodos propios.
- ✅ Usa
superpara acceder a la superclase.
public class ErrorTecnico {
public String getMensaje() {
return "Error genérico";
}
}
public class ErrorEmocional extends ErrorTecnico {
@Override
public String getMensaje() {
return "Ups... algo salió mal, pero podemos aprender de esto.";
}
}