"...shouldn't we always turn inheritance from a concrete class into inheritance from an abstract class (using the Employee classes as a model)? The answer would appear to be yes, except that another heuristic gets in our way." Heuristic 3.7 Eliminate irrelevant classes from your design.
Can anyone explain why all classes except leaves should be abstract ? And the realtionship of heuristic 3.7 as an exception or "counter-heuristic".
If I have an Employee generic class with different specializations, I see no problem making possible to instantiate Employee neither Person nor Human nor LivingBeing