Kế thừa trong các lớp
Thay vì định nghĩa một lớp sau đó, chúng ta có thể tạo một lớp bằng cách dẫn xuất nó từ một lớp đã có từ trước bằng cách liệt kê lớp cha trong ngoặc đơn sau tên lớp mới.
Lớp con kế thừa các thuộc tính của lớp cha và chúng ta có thể sử dụng các thuộc tính đó như thể chúng đã được định nghĩa trong lớp con. Một lớp con cũng có thể ghi đè các thành viên và phương thức dữ liệu từ lớp cha.
Cú pháp
Các lớp có nguồn gốc được khai báo giống như lớp cha của chúng; tuy nhiên, danh sách các lớp cơ sở để kế thừa được đưa ra sau tên lớp -
class SubClassName (ParentClass1[, ParentClass2, ...]): 'Optional class documentation string' class_suite
Ví dụ
#!/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
Đầu ra
Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau -
Calling child constructor Calling child method Calling parent method Parent attribute : 200