Sobes.tech
Junior — Middle

¿Qué cambios deben realizarse en la definición de la clase para garantizar su capacidad de usar polimorfismo?

sobes.tech AI

Respuesta de la IA

Para garantizar la capacidad de usar polimorfismo en Java, es necesario:

  • Hacer que los métodos que se supone deben ser sobrescritos en las subclases no sean estáticos ni finales.
  • Utilizar la palabra clave override en las subclases para sobrescribir los métodos de la clase base.
  • En la clase base, los métodos deben ser declarados como public o protected (para que las subclases puedan sobrescribirlos).

Ejemplo:

class Animal {
    public void sound() {
        System.out.println("Algún sonido");
    }
}

class Dog extends Animal {
    @Override
    public void sound() {
        System.out.println("Ladrido");
    }
}

// Uso del polimorfismo
Animal animal = new Dog();
animal.sound(); // Imprime "Ladrido"

Por lo tanto, para soportar el polimorfismo, los métodos deben ser virtuales (en Java, todos los métodos no estáticos son virtuales por defecto). Lo principal es no hacer que los métodos sean static o final.