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.

Smells Covered

  • Refused Bequest

  • Inappropriate Intimacy (Subclass Form)

  • Lazy Class

See also these other smells related to inheritance:

Refused Bequest

Symptoms

  • A class inherits from a parent, but throws an exception instead ...

Get Refactoring Workbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.