Полиморфизм ("много форм") позволяет единственному интерфейсу работать с различными базовыми типами. Один и тот же вызов выполняет различный код в зависимости от фактического объекта — выбранного во время выполнения. Это полиморфизм подтипов.
Один вызов, много поведений
{ String { ; } }
{ String { ; } }
{ String { ; } }
Animal[] zoo = { (), () };
(Animal a : zoo) {
System.out.println(a.speak());
}
