Абстрактні класи в php

Абстрактні класи в PHP відрізняються від звичайних тим, що не можна створити їх об'єкти. Абстрактні класи створюються для того, щоб на їх основі, використовуючи успадкування в PHP. створювати нові класи.

Абстрактний клас визначається за допомогою ключового слова abstract. В абстрактному класі можна створювати властивості і методи, але спроба ініціювати об'єкт цього класу призведе до помилки.

Давайте пріедём приклад абстрактного класу:

У цьому прикладі в абстрактному класі Dad є два методи. Один буде успадкований, а другий метод абстрактний. Тому його дочірні класи зобов'язані реалізувати абстрактний метод, інакше буде Fatal error.

Абстрактні класи в PHP використовуються при написанні великих проектів, таких як фреймворки. Абстрактні класи спрощують роботу команди програмістів, дозволяючи гарантувати наявність необхідного функціоналу у всіх класах, написання яких може бути доручено працівникам з різних країн.

Отже, абстрактні класи використовуються як шаблони, на їх основі створюються класи з гарантованим набором методів. Причому, в абстрактних класах можна прописувати звичайні і абстрактні методи.

Але в PHP є і чисті шаблони для класів, які складаються тільки з опреденія наборів методів. Мова йде про інтерфейси в PHP.

  • Абстрактні класи потрібно вказувати явно за допомогою ключового слова abstract.
  • Абстрактний клас повинен обов'язково мати мінімум один абстрактний метод, який також задається ключовим словом abstract.
  • Абстрактні методи можуть мати модифікатор доступу відмінний від public.
  • В абстрактному класі методи можуть містити реалізацію, на відміну від інтерфейсів.