Monday, 26 January 2026

Day 40:Overusing inheritance instead of composition

 

๐Ÿ Python Mistakes Everyone Makes ❌

Day 40: Overusing Inheritance Instead of Composition

Inheritance is one of the first OOP concepts most Python developers learn.
And that’s exactly why it’s often overused.

Just because you can inherit from a class doesn’t mean you should.


❌ The Mistake

Using inheritance when the relationship is not truly “is-a”.

class Engine:
    def start(self):
        print("Engine started")

class Car(Engine): # ❌ Car is NOT an Engine
    def drive(self):
     print("Car is driving")

This design implies:

A Car is an Engine

Which is logically incorrect.


❌ Why This Fails

  • ❌ Creates tight coupling

  • ❌ Makes the code harder to change later

  • ❌ Breaks real-world modeling

  • ❌ Leads to fragile inheritance hierarchies

  • ❌ Prevents reusing components independently

If Engine changes, Car breaks.


✅ The Correct Way: Composition

Use composition when an object has another object.

class Engine:
     def start(self):
         print("Engine started")

class Car:
    def __init__(self):
       self.engine = Engine() # ✅ Composition

 def drive(self):
    self.engine.start() 

      print("Car is driving")


Now:

A Car has an Engine

This is flexible, realistic, and scalable.


๐Ÿง  Why Composition Wins

  • Components can be swapped or upgraded

  • Code becomes modular

  • Easier testing and reuse

  • Fewer breaking changes

  • Cleaner mental model

Want an electric engine? Just replace it.


๐Ÿง  Simple Rule to Remember

๐Ÿงฉ Use inheritance for “is-a” relationships
๐Ÿ”— Use composition for “has-a” relationships

If it feels awkward to say out loud — it’s probably wrong in code too.


๐Ÿš€ Final Takeaway

Inheritance is powerful — but dangerous when misused.

Most real-world systems are built from parts, not types.
Favor composition first, and reach for inheritance only when the relationship is truly structural.

Good design is about flexibility, not clever hierarchies.

0 Comments:

Post a Comment

Popular Posts

Categories

100 Python Programs for Beginner (118) AI (186) Android (25) AngularJS (1) Api (7) Assembly Language (2) aws (28) Azure (8) BI (10) Books (261) Bootcamp (1) C (78) C# (12) C++ (83) Course (84) Coursera (299) Cybersecurity (29) Data Analysis (25) Data Analytics (18) data management (15) Data Science (247) Data Strucures (15) Deep Learning (103) Django (16) Downloads (3) edx (21) Engineering (15) Euron (30) Events (7) Excel (18) Finance (9) flask (3) flutter (1) FPL (17) Generative AI (53) Git (9) Google (47) Hadoop (3) HTML Quiz (1) HTML&CSS (48) IBM (41) IoT (3) IS (25) Java (99) Leet Code (4) Machine Learning (225) Meta (24) MICHIGAN (5) microsoft (9) Nvidia (8) Pandas (13) PHP (20) Projects (32) Python (1241) Python Coding Challenge (984) Python Mistakes (39) Python Quiz (402) Python Tips (5) Questions (3) R (72) React (7) Scripting (3) security (4) Selenium Webdriver (4) Software (19) SQL (45) Udemy (17) UX Research (1) web application (11) Web development (8) web scraping (3)

Followers

Python Coding for Kids ( Free Demo for Everyone)