ओवरराइडिंग एक वर्ग की संपत्ति है जो उसके आधार वर्गों में से एक द्वारा प्रदान की गई विधि के कार्यान्वयन को बदलने के लिए है।
ओवरराइडिंग OOP का एक बहुत ही महत्वपूर्ण हिस्सा है क्योंकि यह इनहेरिटेंस को अपनी पूरी शक्ति का उपयोग करता है। एक वर्ग को ओवरराइड करने की विधि का उपयोग करके, दूसरे वर्ग को "कॉपी" कर सकते हैं, डुप्लिकेट कोड से बच सकते हैं, और साथ ही इसके हिस्से को बढ़ा या अनुकूलित कर सकते हैं। इस प्रकार मेथड ओवरराइडिंग इनहेरिटेंस मैकेनिज्म का एक हिस्सा है।
पायथन मेथड में ओवरराइडिंग केवल चाइल्ड क्लास में पैरेंट क्लास में एक मेथड के समान नाम वाली मेथड को परिभाषित करने से होती है। जब आप ऑब्जेक्ट में एक विधि को परिभाषित करते हैं तो आप इसे बाद में उस विधि कॉल को संतुष्ट करने में सक्षम बनाते हैं, इसलिए इसके पूर्वजों के कार्यान्वयन खेल में नहीं आते हैं।
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