การเขียนโปรแกรมเชิงวัตถุสร้างรูปแบบโค้ดที่ใช้ซ้ำได้ เพื่อป้องกันความซ้ำซ้อนของโค้ดในโครงการ วิธีหนึ่งที่สร้างรหัสที่รีไซเคิลได้คือผ่านการสืบทอด เมื่อคลาสย่อยหนึ่งใช้ประโยชน์จากรหัสจากคลาสฐานอื่น
การสืบทอดคือเมื่อคลาสใช้รหัสที่เขียนภายในคลาสอื่น
คลาสที่เรียกว่าคลาสย่อยหรือคลาสย่อยสืบทอดเมธอดและตัวแปรจากคลาสพาเรนต์หรือคลาสเบส
เนื่องจากคลาสย่อย Child สืบทอดมาจากคลาสเบสพาเรนต์ คลาส Child สามารถใช้โค้ดของพาเรนต์ซ้ำได้ ทำให้โปรแกรมเมอร์ใช้โค้ดน้อยลงและลดความซ้ำซ้อน
คลาสที่ได้รับมีการประกาศเหมือนกับคลาสหลัก อย่างไรก็ตาม รายการของคลาสพื้นฐานที่จะสืบทอดมาจากชื่อคลาส -
class SubClassName (ParentClass1[, ParentClass2, ...]): 'Optional class documentation string' class_suite
ตัวอย่าง
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