Is it possible in PHP, that an abstract class inherits from an abstract class?
For example,
abstract class Generic {
abstract public function a(
Yes it is possible however your code would not work if you called $VeryConcreteObject->b()
Here is more detailed explanation.
Yes, this is possible.
If a subclass does not implements all abstract methods of the abstract superclass, it must be abstract too.
It will work, even if you leave the abstract function b(); in class MoreConcrete.
But in this specific example I would transform class "Generic" into an Interface, as it has no more implementation beside the method definitions.
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(); }
}