1) What has we changed?
We added "ClassAB" which gives us new a functionality by the method "doB"
class ClassAB extends ClassA
public function doB()
2) New requirements ?
Yes we want to in method "doB" reuse implementation of class "ChildA" instead of "ClassA"
3) What must we do?
We have to create class which inherit not after "ClassA" but after "ChildA"
Let's do this in step4