कक्षाओं में विरासत
किसी वर्ग को नए सिरे से परिभाषित करने के बजाय, हम नए वर्ग के नाम के बाद मूल वर्ग को कोष्ठक में सूचीबद्ध करके इसे पहले से मौजूद वर्ग से प्राप्त करके एक वर्ग बना सकते हैं।
चाइल्ड क्लास को अपने पैरेंट क्लास की विशेषताएँ विरासत में मिलती हैं, और हम उन एट्रिब्यूट्स का उपयोग इस तरह कर सकते हैं जैसे कि उन्हें चाइल्ड क्लास में परिभाषित किया गया हो। चाइल्ड क्लास माता-पिता के डेटा सदस्यों और विधियों को भी ओवरराइड कर सकती है।
वाक्यविन्यास
व्युत्पन्न वर्गों को उनके मूल वर्ग की तरह घोषित किया जाता है; हालांकि, इनहेरिट करने के लिए बेस क्लास की सूची क्लास के नाम के बाद दी गई है -
class SubClassName (ParentClass1[, ParentClass2, ...]): 'Optional class documentation string' class_suite
उदाहरण
#!/usr/bin/python class Parent: # define parent class parentAttr = 100 def __init__(self): print "Calling parent constructor" def parentMethod(self): print 'Calling parent method' def setAttr(self, attr): Parent.parentAttr = attr def getAttr(self): print "Parent attribute :", Parent.parentAttr class Child(Parent): # define child class def __init__(self): print "Calling child constructor" def childMethod(self): print 'Calling child method' c = Child() # instance of child c.childMethod() # child calls its method c.parentMethod() # calls parent's method c.setAttr(200) # again call parent's method c.getAttr() # again call parent's method
आउटपुट
जब उपरोक्त कोड निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -
Calling child constructor Calling child method Calling parent method Parent attribute : 200