Глосарій

Поліморфізм

Поліморфізм — здатність об'єктів різних класів реагувати на один і той самий виклик методу по-різному. Код, що звертається до методу через інтерфейс або батьківський клас, не знає і не має знати, який саме підклас виконає логіку.

Приклад

interface Shape {
  area(): float;
}
class Circle implements Shape {
  area(): float { return M_PI * $this->r ** 2; }
}
class Square implements Shape {
  area(): float { return $this->side ** 2; }
}

function printArea(Shape $s): void {
  echo $s->area(); // не знає, коло чи квадрат
}

Два типи