Абстрактні класи в php
Абстрактні класи в PHP відрізняються від звичайних тим, що не можна створити їх об'єкти. Абстрактні класи створюються для того, щоб на їх основі, використовуючи успадкування в PHP. створювати нові класи.
Абстрактний клас визначається за допомогою ключового слова abstract. В абстрактному класі можна створювати властивості і методи, але спроба ініціювати об'єкт цього класу призведе до помилки.
Давайте пріедём приклад абстрактного класу:
У цьому прикладі в абстрактному класі Dad є два методи. Один буде успадкований, а другий метод абстрактний. Тому його дочірні класи зобов'язані реалізувати абстрактний метод, інакше буде Fatal error.
Абстрактні класи в PHP використовуються при написанні великих проектів, таких як фреймворки. Абстрактні класи спрощують роботу команди програмістів, дозволяючи гарантувати наявність необхідного функціоналу у всіх класах, написання яких може бути доручено працівникам з різних країн.
Отже, абстрактні класи використовуються як шаблони, на їх основі створюються класи з гарантованим набором методів. Причому, в абстрактних класах можна прописувати звичайні і абстрактні методи.
Але в PHP є і чисті шаблони для класів, які складаються тільки з опреденія наборів методів. Мова йде про інтерфейси в PHP.
- Абстрактні класи потрібно вказувати явно за допомогою ключового слова abstract.
- Абстрактний клас повинен обов'язково мати мінімум один абстрактний метод, який також задається ключовим словом abstract.
- Абстрактні методи можуть мати модифікатор доступу відмінний від public.
- В абстрактному класі методи можуть містити реалізацію, на відміну від інтерфейсів.