Inheritance & Polymorphism
Function Overriding
Derived Class Apna Version Deti Hai
💡 Overriding ek family recipe ko apne tarike se badalna hai — base recipe (parent) same naam ki hai, lekin har generation apna twist add kar sakti hai, jab bhi banao apni wali chalegi (agar tumne banayi hai).
Function overriding tab hota hai jab derived class base class ke kisi function ko SAME signature (naam + parameters) ke saath phir se define karti hai — derived class ka object apni version use karega, base class ka nahi.
Overriding, overloading se alag hai — overloading same class mein hota hai (alag parameters), overriding inheritance mein hota hai (same signature, alag class).
class Animal {
public:
void makeSound() { cout << "Kuch awaaz..." << endl; }
};
class Dog : public Animal {
public:
void makeSound() { cout << "Bhow Bhow!" << endl; } // override
};
int main() {
Dog d;
d.makeSound(); // "Bhow Bhow!" — Dog ka version chalega
Animal a;
a.makeSound(); // "Kuch awaaz..." — Animal ka version
return 0;
}🔁
Overriding ek family recipe ko apne tarike se badalna hai — base recipe (parent) same naam ki hai, lekin har generation apna twist add kar sakti hai, jab bhi banao apni wali chalegi (agar tumne banayi hai).
1 / 2
⚡ Quick Recap
- Same signature, derived class mein redefine karna
- Overloading = same class, alag parameters; Overriding = inheritance, same signature
- Full polymorphic behavior ke liye virtual zaroori
On this page (1 subtopics)
Kabhi-kabhi derived class ka overridden function base class ke version ko bhi call karna chahta hai (extend karna, replace nahi) — Base::functionName() syntax se explicitly base version call kar sakte ho.
class Animal {
public:
void makeSound() { cout << "Generic sound" << endl; }
};
class Dog : public Animal {
public:
void makeSound() {
Animal::makeSound(); // base version bhi call karo
cout << "Bhow!" << endl; // phir apna add karo
}
};
// Output: "Generic sound" phir "Bhow!"Tip: Ye pattern common hai jab derived class base ka behavior "extend" karna chahti hai, poora replace nahi — jaise logging add karna kisi existing function ke upar.