DRAFT
ConcreteClassMustOverride
Misconception:
A concrete class that extends an abstract superclass (which itself again might extend another abstract superclass, and so on), needs to implement absolutely all methods declared in those abstract superclasses.
Incorrect
A concrete class needs to implement all methods declared in its abstract superclasses
Correct
CorrectionHere is what's right.
Here is what's right.
The concrete class only needs to implement the abstract methods it inherits from its superclasses. If a method is already implemented in its superclasses, the concrete class does not need to implement it again. It simply inherits the implementation from the superclass (even if that superclass is abstract).
Note that abstract classes can have concrete methods.