Sobes.tech
Junior — Middle

Възможно ли е да се създаде верига на наследяване между абстрактни класове?

sobes.tech AI

Отговор от AI

Да, в PHP е възможно да се създаде верига на наследяване между абстрактни класове. Абстрактен клас може да наследява друг абстрактен клас, а дъщерният клас може да реализира или презапише абстрактните методи на родителя.

Пример:

abstract class Animal {
    abstract public function makeSound();
}

abstract class Mammal extends Animal {
    public function breathe() {
        echo "Дишам въздух";
    }
}

class Dog extends Mammal {
    public function makeSound() {
        echo "Га-Га";
    }
}

$dog = new Dog();
$dog->breathe(); // Ще изведе: Дишам въздух
$dog->makeSound(); // Ще изведе: Га-Га

По този начин, веригата на наследяване между абстрактните класове позволява да се изграждат йерархии с частична реализация и задължителни за реализиране методи.