Bom dia Lucas, imagina a seguinte situação. Você tem as classes:
class Cachorro {
public void comer() {
}
}
class Gato {
public void comer() {
}
}
Agora imagina uma classe que recebe um gato e manda comer, recebe um cachorro e manda comer:
public class Alimentacao {
public void comer(Cachorro cachorro) {
cachorro.comer();
}
public void comer(Gato gato) {
gato.comer();
}
}
E se eu tivesse criado 1000 animais? teria 1000 métodos nessa classe. Então eu crio um super tipo Animal, as minhas classes extends Animal e crio um método que recebe animal:
public class Alimentacao {
public void comer(Animal animal) {
animal.comer();
}
}
Usamos polimorfirmo para isso