Polimorfismo ("muitas formas") permite que uma única interface funcione com diferentes tipos subjacentes. A mesma chamada executa código diferente dependendo do objeto real — escolhido em tempo de execução. Isso é polimorfismo de subtipo.
Uma chamada, muitos comportamentos
{ String { ; } }
{ String { ; } }
{ String { ; } }
Animal[] zoo = { (), () };
(Animal a : zoo) {
System.out.println(a.speak());
}
