Php abstract class estendendo outra class abstrata

É possível no PHP, que uma class abstrata herda de uma class abstrata?

Por exemplo,

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(); } } 

(a class abstrata estende a class abstrata no php? não dá uma resposta)

Sim, isso é possível.

Se uma subclass não implementa todos os methods abstratos da superclass abstrata, ela também deve ser abstrata.

Sim, é possível, no entanto, seu código não funcionaria se você chamou $VeryConcreteObject->b()

Aqui está uma explicação mais detalhada.

Funcionará, mesmo se você deixar a function abstrata b (); na class MoreConcrete.

Mas neste exemplo específico eu transformaria a class “Genérico” em uma Interface, já que não possui mais implementação ao lado das definições do método.

 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(); } }