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

что такое 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 (интерфейсы).

| Опубликовано: 08.07.2020
❤ 1