🧬
OOP Basics

Inheritance

class Derived(Base):
💡 Python inheritance parents se properties lena jaisa hai — jaise C++/Java mein, lekin syntax bahut simple hai: bas parent class ka naam parentheses mein likh do.

Inheritance syntax: class Derived(Base):. super() function se parent class ke methods (especially __init__) call kar sakte ho — bahut common pattern jab derived class apna kuch extra setup karna chahti hai, lekin parent ka setup bhi chalana zaroori hai.

Python multiple inheritance bhi support karta hai (C++ jaisa): class C(A, B):. Method Resolution Order (MRO) decide karta hai kis order mein methods search hote hain agar multiple parents mein same naam ho.

class Animal:
    def __init__(self, name):
        self.name = name
    def speak(self):
        print(f"{self.name} makes a sound")

class Dog(Animal):
    def __init__(self, name, breed):
        super().__init__(name)   # parent ka __init__ call karo
        self.breed = breed
    def speak(self):              # override
        print(f"{self.name} says Woof!")

d = Dog("Rex", "Labrador")
d.speak()   # "Rex says Woof!"
print(d.name)   # "Rex" — parent se inherited
🧬
Python inheritance parents se properties lena jaisa hai — jaise C++/Java mein, lekin syntax bahut simple hai: bas parent class ka naam parentheses mein likh do.
1 / 2
⚡ झट से Recap
  • class Derived(Base): — simple inheritance syntax
  • super() se parent class ke methods call karo
  • Multiple inheritance supported hai — class C(A, B):
इस page में (1 subtopics)

Jab multiple inheritance mein same-named method do parents mein ho, Python "MRO" (C3 linearization algorithm) se decide karta hai kaunsa version use hoga. ClassName.__mro__ se ye order dekh sakte ho.

class A:
    def greet(self): print("A")

class B:
    def greet(self): print("B")

class C(A, B):   # A pehle likha gaya hai
    pass

c = C()
c.greet()   # "A" — MRO left-to-right search karta hai

print(C.__mro__)   # (C, A, B, object) — search order
💡Tip: MRO confusion se bachne ke liye, multiple inheritance ko simple rakho ya composition prefer karo (jaise C++ mein bhi recommend kiya jaata hai diamond problem se bachne ke liye).