पिछले ब्लॉग में हमने देखा कि ऑब्जेक्ट्स कैसे बनते हैं। अब हम ओओपी (OOPs) के दो सबसे पावरफुल पिलर्स को समझेंगे: Inheritance (विरासत) और Polymorphism (बहुरूपता)।
Inheritance: पेरेंट के फीचर्स चाइल्ड में
मान लीजिए आपने एक Animal क्लास बनाई जिसमें खाने (eat) और सोने (sleep) के मेथड्स हैं। अब अगर आप Dog क्लास बनाते हैं, तो क्या फिर से खाना-सोना लिखेंगे? नहीं! आप Animal क्लास को 'इनहेरिट' (विरासत में लेना) कर लेंगे।
# Parent Class (माता-पिता)
class Animal:
def eat(self):
print("मैं खाता हूँ।")
# Child Class (संतान)
class Dog(Animal):
def bark(self):
print("भौ-भौ!")
tommy = Dog()
tommy.bark() # इस क्लास का अपना फंक्शन
tommy.eat() # पेरेंट क्लास से मिला फंक्शन!
Polymorphism: एक नाम, कई काम
पॉलीमॉर्फिज्म का मतलब है "Poly" (बहुत सारे) और "Morph" (रूप)। मान लीजिए फंक्शन का नाम एक ही है - जैसे make_sound()। लेकिन बिल्ली म्याऊँ करेगी, कुत्ता भौंकेगा। नाम एक है पर काम (लॉजिक) ऑब्जेक्ट के अनुसार बदल जाता है।
class Cat:
def make_sound(self): print("Meow!")
class Dog:
def make_sound(self): print("Woof!")
def animal_sound(animal_obj):
animal_obj.make_sound() # जो भी ऑब्जेक्ट आएगा, उसका साउंड बजेगा
animal_sound(Cat())
animal_sound(Dog())