php абстрактный класс, расширяющий другой абстрактный класс

Возможно ли в PHP, что абстрактный класс наследуется от абстрактного класса?

Например,

abstract class Generic { abstract public function a(); abstract public function b(); } abstract class MoreConcrete extends Generic { public function a() { do_stuff(); } abstract public function b(); // I want this not to be implemented here... } class VeryConcrete extends MoreConcrete { public function b() { do_stuff(); } } 

( абстрактный класс расширяет абстрактный класс в php? не дает ответа)

Solutions Collecting From Web of "php абстрактный класс, расширяющий другой абстрактный класс"

Да, это возможно.

Если подкласс не реализует все абстрактные методы абстрактного суперкласса, он также должен быть абстрактным.

Да, возможно, ваш код не будет работать, если вы $VeryConcreteObject->b()

Вот более подробное объяснение.

Он будет работать, даже если вы оставите абстрактную функцию b (); в классе MoreConcrete.

Но в этом конкретном примере я бы преобразовал класс «Generic» в интерфейс, поскольку он не имеет больше реализации рядом с определениями методов.

 interface Generic { public function a(); public function b(); } abstract class MoreConcrete implements Generic { public function a() { do_stuff(); } // can be left out, as the class is defined abstract // abstract public function b(); } class VeryConcrete extends MoreConcrete { // this class has to implement the method b() as it is not abstract. public function b() { do_stuff(); } }