Kế thừa (Inheritance) cho phép chúng ta định nghĩa một lớp kế thừa tất cả các phương thức và thuộc tính từ một lớp khác.
Parent class là lớp được các lớp khác kế thừa, còn gọi là base class.Child class là lớp kế thừa từ lớp cha (Parent class), còn gọi là lớp dẫn xuất (Derived class).
Kế thừa là một khía cạnh quan trọng của mô hình lập trình hướng đối tượng. Kế thừa cung cấp khả năng sử dụng lại mã cho chương trình vì chúng ta có thể sử dụng một lớp hiện có để tạo một lớp mới thay vì tạo nó từ đầu.
Trong kế thừa, lớp con có được các thuộc tính và có thể truy cập tất cả các thành viên dữ liệu và các hàm được định nghĩa trong lớp cha. Một lớp con cũng có thể cung cấp việc triển khai cụ thể cho các hàm của lớp cha.
Bất cứ lớp nào cũng có thể là lớp cha (Parent class), vì vậy cú pháp để tạo Parent class chính là cú pháp tạo lớp của Python
Cú pháp tạo Parent class
class ClassName:
# các lệnh
Ví dụ ta có lớp DongVat là lớp cha, lớp Cho hay lớp Meo là lớp con. Bản thân lớp Cho cũng có thể là lớp cha, khi đó lớp PhuQuoc, Chihuahua, Husky...sẽ là lớp con
Chúng ta sẽ hiện thực hóa điều trên bằng chương trình sau
class DongVat:
def noi(self):
print("Dong Vat Noi Chuyen")
# lớp con Cho kế thừa lớp DongVat
class Cho(DongVat):
def sua(self):
print("Gou gou!")
d = Cho()
d.sua()
d.noi()
Sử dụng IDE Online để chạy chương trình.
Chúng ta tiếp tục tạo một lớp con của lớp Cho là ChoPhuQuoc và thêm thuộc tính là có lông xoáy như sau
class DongVat:
def noi(self):
print("Dong Vat Noi Chuyen")
# lớp con Cho kế thừa lớp DongVat
class Cho(DongVat):
def sua(self):
print("Gou gou!")
class ChoPhuQuoc(Cho):
long = "Xoay"
d = Cho()
d.sua()
d.noi()
e = ChoPhuQuoc()
print(e.long)
Chạy chương trình
Chúng ta cũng có thể tạo một lớp kế thừa nhiều lớp. Một lớp có thể kế thừa nhiều lớp bằng cách đề cập đến tất cả chúng trong dấu ngoặc. Ví dụ chúng ta tạo một lớp thú cưng kế thừa lớp Chó và Mèo như sau.
class DongVat:
def noi(self):
print("Dong Vat Noi Chuyen")
# lớp con Cho kế thừa lớp DongVat
class Cho(DongVat):
def sua(self):
print("Gou gou!")
class ChoPhuQuoc(Cho):
long = "Xoay"
class Meo(DongVat):
def keu(self):
print("Meo Meo!")
class ThuCung(Cho, Meo):
def an(self):
print("Thu Cung An")
d = Cho()
d.sua()
d.noi()
e = ChoPhuQuoc()
print(e.long)
f = ThuCung()
f.an()
f.sua()
f.keu()
f.noi()
Chạy chương trình
Không có nhận xét nào:
Đăng nhận xét