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
overrideen las subclases para sobrescribir los métodos de la clase base. - En la clase base, los métodos deben ser declarados como
publicoprotected(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.