Кстати говоря, Вы можете сделать заказ у разработчика которого вы сейчас читаете, по любым вопросам с администрированием серверов, а также сайтами. Я помогу в любой задаче, оплата почасовая. Можете обратиться в Telegram для быстрой обратной связи, либо на почту которая на странице "Обо мне".
Дата публикации: 08.07.2020
Дата обновления: 18.12.2021
Абстрактный класс в PHP (abstract class …) — обширный класс описывающий область дочерних классов. К примеру мы можем говорить о животных, машинах, окнах или о любых других областях. Поэтому существуют абстрактные классы которые позволяют описать методы, свойства объекта для последующего наследования.
Для примера возьмём машины:
abstract class Car { public $name; }
Здесь мы просто создали абстрактный класс. Для того чтобы он имел смысл, надо создать дочерние классы:
class Bigfoot extends Car { public function getName() { return $this->name; } }
Класс Bigfoot наследовал абстрактный класс Car, и имеет метод getName(). Конечно же лучше getName() делать в абстрактном классе Car, так как любая машина будет иметь название, так как присутствует в абстрактном классе свойство $name .
Также можно указать обязательные для объявления методы в самом абстрактном классе Car.
abstract class Car { public string $name = ''; abstract public function MyFunc():string; # Это обязательный public function getName():string { # Вставили чтобы быть правильным return $this->name; } }
Теперь класс Bigfoor обязан иметь метод MyFun() и должен быть определён.
class Bigfoot extends Car { public function MyFunc():string { return 'something'; } } $bigfoot = new Bigfoot; var_dump($bigfoot->getName()); # Будет пусто :)
После этого у нас не будет ошибки.
Но что если машина бигфут имеет какие-то особенные свойства или методы? — Просто добавьте их в сам класс Bigfoot.
Обязательно нужно соблюдать применяемую область и писать отдельные классы для них, для лучшей читаемости и поддержки.
Также можно описывать методы в классах через interface (интерфейсы)
Кстати говоря, Вы можете сделать заказ у разработчика которого вы сейчас читаете, по любым вопросам с администрированием серверов, а также сайтами. Я помогу в любой задаче, оплата почасовая. Можете обратиться в Telegram для быстрой обратной связи, либо на почту которая на странице "Обо мне".