Sobes.tech
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 override nas subclasses para sobrescrever os métodos da classe base.
  • Na classe base, os métodos devem ser declarados como public ou protected (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.