ओवरराइडिंग एक क्लास की संपत्ति है जो उसके बेस क्लासेस में से एक द्वारा प्रदान किए गए मेथड के कार्यान्वयन को बदल देती है।
ओवरराइडिंग OOP का एक बहुत महत्वपूर्ण हिस्सा है क्योंकि यह इनहेरिटेंस को इसकी पूरी शक्ति का उपयोग करने देता है। मेथड ओवरराइडिंग का उपयोग करके एक क्लास दूसरी क्लास को "कॉपी" कर सकती है, डुप्लिकेट कोड से बच सकती है, और साथ ही उसके भाग को बढ़ा या कस्टमाइज़ कर सकती है। मेथड ओवरराइडिंग इस प्रकार इनहेरिटेंस मैकेनिज्म का एक हिस्सा है।
Python में मेथड ओवरराइडिंग चाइल्ड क्लास में पैरेंट क्लास में एक मेथड के समान नाम का मेथड परिभाषित करके होती है। जब आप ऑब्जेक्ट में एक मेथड परिभाषित करते हैं तो आप बाद वाले को उस मेथड कॉल को संतुष्ट करने में सक्षम बनाते हैं, इसलिए इसके पूर्वजों के कार्यान्वयन खेल में नहीं आते।
class Parent(object):
def __init__(self):
self.value = 4
def get_value(self):
return self.value
class Child(Parent):
def get_value(self):
return self.value + 1
अब चाइल्ड ऑब्जेक्ट्स अलग व्यवहार करते हैं:
>>> c = Child() >>> c.get_value() 5