Middle
¿Qué es el polimorfismo dinámico en Java?
sobes.tech AI
Respuesta de la IA
La implementación dinámica (o polimorfismo en tiempo de ejecución) se realiza mediante la sobrescritura de métodos (override). Esto significa que la decisión de qué método será llamado se toma en tiempo de ejecución, no en tiempo de compilación.
Puntos clave:
- Herencia: Requiere una jerarquía de clases donde la subclase hereda de la superclase.
- Sobrescritura: La subclase proporciona su propia implementación de un método que ya está declarado en la superclase.
- Referencia a la superclase: Un objeto de la subclase puede ser asignado a una referencia de tipo superclase.
- Llamada al método: Al llamar a un método sobrescrito a través de una referencia a la superclase, se ejecutará la implementación del objeto real (subclase).
Ejemplo:
// Superclase
class Animal {
public void makeSound() {
System.out.println("Sonido desconocido");
}
}
// Subclase
class Dog extends Animal {
@Override
public void makeSound() {
System.out.println("¡Guau!");
}
}
// Subclase
class Cat extends Animal {
@Override
public void makeSound() {
System.out.println("¡Miau!");
}
}
// Uso del polimorfismo
class Main {
public static void main(String[] args) {
Animal myDog = new Dog(); // La referencia a la superclase apunta a un objeto de la subclase
Animal myCat = new Cat();
myDog.makeSound(); // Se llama al método de Dog
myCat.makeSound(); // Se llama al método de Cat
}
}
Ventajas:
- Flexibilidad: Permite tratar objetos de diferentes subclases de manera uniforme a través de una referencia común a la superclase.
- Extensibilidad: Es fácil agregar nuevas subclases sin modificar el código existente que usa la referencia a la superclase.
- Simplificación del código: Permite escribir código más generalizado.