Như bạn có thể biết, việc tạo một lớp đầy đủ chức năng trong ngôn ngữ lập trình hướng đối tượng rất tốn thời gian vì các lớp thực thực hiện rất nhiều tác vụ phức tạp.
Trong Python, bạn có thể lấy các tính năng bạn muốn từ một lớp hiện có [cha mẹ] để tạo một lớp mới [con]. Tính năng Python này được gọi là tính kế thừa
Bằng cách kế thừa, bạn có thể
- có được các tính năng của một lớp cha mẹ,
- thay đổi các tính năng mà bạn không cần,
- thêm các tính năng mới cho lớp con của bạn. [lớp dẫn xuất hoặc lớp con]
Vì bạn đang sử dụng một lớp học thử nghiệm đã được sử dụng trước, nên bạn không cần phải nỗ lực nhiều như vậy cho lớp học mới của mình. Lớp con kế thừa các thuộc tính và chức năng của lớp cha
Nếu chúng ta có một số lớp tương tự, chúng ta có thể định nghĩa các chức năng chung của chúng trong một lớp và định nghĩa các lớp con của lớp cha này và triển khai các chức năng cụ thể ở đó
Ba chuyên gia dữ liệuHình ảnh của tác giả
Chúng tôi có 3 chuyên gia dữ liệu. Tất cả họ đều biết toán học và thống kê, SQL và ngôn ngữ lập trình như Python, R, Java, v.v.
class Data_Scientist:
def __init__[self, name, SQL]:
self.name = name
self.SQL = SQL
def knows_maths_stats[self]:
return True
def knows_programming[self]:
return True
class Data_Analyst:
def __init__[self, name, SQL]:
self.name = name
self.SQL = SQL
def knows_maths_stats[self]:
return True
def knows_programming[self]:
return True
class Data_Engineer:
def __init__[self, name]:
self.name = name
self.SQL = SQL
def knows_maths_stats[self]:
return True
def knows_programming[self]:
return True
Thay vì viết đi viết lại cùng một lớp, chúng ta có thể định nghĩa một lớp cha “Data_Professional” và 3 lớp con của lớp Data_Professional. Data_Analyst, Data_Scientist và Data_Engineer
lớp phụ huynhLớp mà chúng ta kế thừa được gọi là Lớp cha, Lớp cha hoặc Lớp cơ sở
class Data_Professional:
def __init__[self, name, SQL]:
self.name = name
self.SQL = SQL
def knows_maths_stats[self]:
return True
def knows_programming[self]:
return True
Lớp học dành cho trẻ emLớp mới được tạo ra bằng cách kế thừa các chức năng của lớp cha được gọi là Lớp con, Lớp dẫn xuất hoặc Lớp con. Hàm __init__[] của lớp con ghi đè hàm __init__[] của lớp cha
Truy cập các biến lớp cha từ lớp con
Mary Smith là một nhà khoa học dữ liệu biết toán học và thống kê, SQL và Python
1. Định nghĩa lớp con
class Data_Scientist[Data_Professional]:
def __init__[self, name, SQL]:
super[].__init__[name, SQL]
2. Khởi tạo đối tượng dt_sci
dt_sci = Data_Scientist[“Mary Smith”, 9]
3. In các tính năng của dt_sci
print[dt_sci.name,
dt_sci.SQL,
dt_sci.knows_maths_stats[],
dt_sci.knows_programming[]]Mary Smith 9 True True
Một lớp trống có các thuộc tính của lớp cha của nó
class Data_Engineer[Data_Professional]:
passdt_en = Data_Engineer[“Hyun-mi Tokko”, 9]print[dt_en.name,
dt_en.SQL,
dt_en.knows_maths_stats[],
dt_en.knows_programming[]]Hyun-mi Tokko 9 True True
Ghi đè các lớp
class Data_Analyst[Data_Professional]:Kiểm tra các lớp con và trường hợp
def __init__[self, name, SQL]:
super[].__init__[name, SQL]
def knows_programming[self]:
return Falsedt_an = Data_Analyst[“Brinda Kumar”, 7]print[dt_an.name,
dt_an.SQL,
dt_an.knows_maths_stats[],
dt_an.knows_programming[]]Brinda Kumar 7 True False
issubclass[] Phương thức
Hàm dựng sẵn issubclass[class1, class2] hỏi xem một lớp có phải là lớp con của lớp khác không
print[issubclass[Data_Analyst, Data_Professional]]Trueprint[issubclass[Data_Professional, Data_Analyst]]False
Phương thức isinstance[]
Hàm dựng sẵn isinstance[object, class] hỏi xem một đối tượng có phải là một thể hiện của một lớp không
print[isinstance[dt_an, Data_Analyst]]Trueprint[isinstance[dt_en, Data_Analyst]]FalseCác Loại Thừa Kế
Có mấy kiểu thừa kế. Đó là kế thừa đơn, đa kế thừa, kế thừa đa cấp, kế thừa phân cấp và kế thừa hỗn hợp. Bốn cái đầu tiên trong số chúng được minh họa dưới đây. Thừa kế lai là sự kết hợp của 4 kiểu thừa kế trên. Ví dụ trên là một ví dụ về thừa kế lai
Hình ảnh của tác giả Ưu điểm của thừa kế
Kế thừa cung cấp rất nhiều lợi thế. Bằng cách sử dụng các lớp cha và con,
- chúng tôi có thể viết mã linh hoạt, có thể tái sử dụng nhiều hơn, dễ dàng mở rộng bởi các nhà phát triển mới,
- chúng ta có thể viết mã có tổ chức, có cấu trúc, dễ đọc hơn giúp chúng ta gỡ lỗi và xác định lỗi dễ dàng,
- chúng ta có thể giảm sự lặp lại và sao chép mã, chúng ta có thể đặt tất cả các thuộc tính và chức năng phổ biến vào lớp cha và truy cập chúng bởi lớp con
Kế thừa là một trong những khái niệm quan trọng nhất trong Lập trình hướng đối tượng [OOP]. Nó cho phép chúng ta tạo các lớp mới dựa trên một hoặc nhiều lớp hiện có. Chúng ta sẽ thảo luận về đa hình, đóng gói và trừu tượng hóa trong các blog tiếp theo
Liên hệ với tôiNếu bạn muốn được cập nhật các bài viết mới nhất của tôi, hãy theo dõi tôi trên Medium. Bạn có thể kết nối với tôi trên LinkedIn và gửi email cho tôi theo địa chỉ seymatas@gmail. com