Revision Notes/OOP Principles
Field Entry - OOP Principles
Composition over Inheritance
Prefer building complex behavior by combining simpler objects (has-a) rather than by creating deep inheritance hierarchies (is-a).
Field Note - Real-world Analogy
“Think about building a robot. Inheritance approach: create a base Robot class, then extend to FlyingRobot, SwimmingRobot, ShootingRobot, FlyingShootingRobot, SwimmingShootingRobot... this explodes. Composition approach: create Fly ability, Swim ability, Shoot ability as separate components. Build any robot by choosing which abilities to include.”
Field Observations - Key Topics Covered
Inheritance is great for true "is-a" relationships, but it's often misused just to share code. Deep inheritance hierarchies become fragile: changing a base class can break all its subclasses in unexpected ways. The "Fragile Base Class" problem is real.
4 more observations inside
Sign in to read every key point in full
Ready to go deeper?
Open the complete revision note.
Sign in to read every field observation in full, including a runnable code example and side-by-side comparisons with related patterns.
Read Full NotesSee Also in OOP Principles