Sobes.tech
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.