Polimorfismo ("muchas formas") permite que una única interfaz funcione con diferentes tipos subyacentes. La misma llamada ejecuta código diferente dependiendo del objeto real — elegido en tiempo de ejecución. Esto es polimorfismo de subtipos.
Una llamada, muchos comportamientos
{ String { ; } }
{ String { ; } }
{ String { ; } }
Animal[] zoo = { (), () };
(Animal a : zoo) {
System.out.println(a.speak());
}
