Глоссарий

Наследование

Наследование — механизм, при котором класс-потомок получает свойства и методы родительского класса и может переопределять или расширять их. PHP поддерживает одиночное наследование: класс может иметь только одного родителя.

Базовый пример

class Animal {
  public function __construct(protected string $name) {}
  public function speak(): string { return '...'; }
}

class Dog extends Animal {
  public function speak(): string { return 'Woof!'; }
  public function fetch(): void { /* ... */ }
}

$d = new Dog('Rex');
$d->speak();  // "Woof!" — overriding
$d->fetch();  // собственный метод

Когда НЕ стоит использовать

Наследование часто избыточно. Вопрос: «является ли B разновидностью A?» (is-a). Если да — ок. Если вы наследуете только ради повторного использования кода — лучше Composition или Trait.

Composition over Inheritance

Встраивание объектов вместо наследования — более гибко. Вместо class EmailService extends Mailerclass EmailService { private Mailer $mailer; }.