Что такое абстрактный класс в PHP?

Кстати говоря, Вы можете сделать заказ у разработчика которого вы сейчас читаете, по любым вопросам с администрированием серверов, а также сайтами. Я помогу в любой задаче, оплата почасовая. Можете обратиться в Telegram для быстрой обратной связи, либо на почту которая на странице "Обо мне".

Дата публикации: 08.07.2020
Дата обновления: 18.12.2021

что такое php абстрактный класс abstract class

Абстрактный класс в 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 для быстрой обратной связи, либо на почту которая на странице "Обо мне".

Как заставить PHP работать быстрее, еще до того как создать продукт, несколько правил

Тернарный оператор в PHP — Как его использовать?

Авторизация через соц. сети Вконтакте, Фейсбук, Одноклассники, Google+ в один клик

PHP Класс для приёма платежей через Тинькофф банк

Robokassa — Класс для работы с регулярными платежами