Junior — Middle
Que alterações precisam ser feitas na definição da classe para garantir a sua capacidade de usar polimorfismo?
sobes.tech IA
Resposta da IA
Para garantir a possibilidade de usar polimorfismo em Java, é necessário:
- Tornar os métodos que se pretende sobrescrever nas subclasses não estáticos e não finais.
- Utilizar a palavra-chave
overridenas subclasses para sobrescrever os métodos da classe base. - Na classe base, os métodos devem ser declarados como
publicouprotected(para que as subclasses possam sobrescrevê-los).
Exemplo:
class Animal {
public void sound() {
System.out.println("Algum som");
}
}
class Dog extends Animal {
@Override
public void sound() {
System.out.println("Latir");
}
}
// Uso do polimorfismo
Animal animal = new Dog();
animal.sound(); // Vai imprimir "Latir"
Assim, para suportar o polimorfismo, os métodos devem ser virtuais (em Java, todos os métodos não estáticos são virtuais por padrão). O principal é não tornar os métodos static ou final.