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(); // Ще изведе: Га-Га
По този начин, веригата на наследяване между абстрактните класове позволява да се изграждат йерархии с частична реализация и задължителни за реализиране методи.