Chapter 9. Inheritance
The relationship between a class and its subclass often starts being simple but gets more complicated over time. A subclass will often depend on its parent more intimately than will a separate class, but it can go too far.
A key challenge is deciding what a class is versus what a class has. A class structure often starts with inheritance and moves to a more compositional style over time.
Inappropriate Intimacy (Subclass Form)
See also these other smells related to inheritance:
A class inherits from a parent, but throws an exception instead ...