Tóm lược. trong hướng dẫn này, bạn sẽ tìm hiểu về tính kế thừa của Python và cách sử dụng tính kế thừa để sử dụng lại mã từ một lớp hiện có
Giới thiệu về kế thừa Python
Kế thừa cho phép một lớp sử dụng lại logic của một lớp hiện có. Giả sử bạn có lớp
3 sauCode language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
Code language: Python [python]
class Person: def __init__[self, name]: self.name = name def greet[self]: return f"Hi, it's {self.name}"
Lớp
3 có thuộc tínhCode language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
5 và phương thứcCode language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
6Code language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
Bây giờ, bạn muốn định nghĩa lớp
7 tương tự như lớpCode language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
3Code language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
Code language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
Lớp
7 có hai thuộc tínhCode language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
5 vàCode language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
01. Nó cũng có phương thứcCode language: Python [python]
class Person: def __init__[self, name]: self.name = name def greet[self]: return f"Hi, it's {self.name}"
6 hoàn toàn giống với phương thứcCode language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
6 của lớpCode language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
3Code language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
Để sử dụng lại phương thức
6 từ lớpCode language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
3 trong lớpCode language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
7, bạn có thể tạo mối quan hệ giữa lớpCode language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
3 và lớpCode language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
7. Để làm được, bạn sử dụng tính kế thừa để lớp
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
Code language: Python [python]
7 kế thừa từ lớpCode language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
3Code language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
Phần sau định nghĩa lại lớp
7 kế thừa từ lớpCode language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
3Code language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
0Code language: Python [python]
class Person: def __init__[self, name]: self.name = name def greet[self]: return f"Hi, it's {self.name}"
Bằng cách này, lớp
7 hoạt động giống như lớpCode language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
3 mà không cần định nghĩa lại phương thức welcome[]Code language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
Đây là một kế thừa duy nhất vì
7 kế thừa từ một lớp duy nhất [Code language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
3]. Lưu ý rằng Python cũng hỗ trợ đa kế thừa trong đó một lớp kế thừa từ nhiều lớpCode language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
Vì lớp
7 kế thừa các thuộc tính và phương thức của lớpCode language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
3, nên bạn có thể sử dụng thể hiện của lớp Nhân viên như thể nó là thể hiện của lớpCode language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
3Code language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
Ví dụ: phần sau tạo một thể hiện mới của lớp
7 và gọi phương thứcCode language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
6Code language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
3Code language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
đầu ra
4Code language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
thuật ngữ thừa kế
Lớp
3 là lớp cha, lớp cơ sở hoặc lớp cha của lớp
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
Code language: Python [python]
7. Và lớpCode language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
7 là lớp con, lớp dẫn xuất hay lớp con của lớpCode language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
3Code language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
Lớp
7 kế thừa, mở rộng hoặc lớp con của lớpCode language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
3Code language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
Mối quan hệ giữa lớp
7 và lớpCode language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
3 là mối quan hệ IS-A. Nói cách khác, nhân viên là ngườiCode language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
loại vs. chẳng hạn
Sau đây cho thấy loại thể hiện của các lớp
3 vàCode language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
7Code language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
5Code language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
đầu ra
6Code language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
Để kiểm tra xem một đối tượng có phải là thể hiện của một lớp hay không, bạn sử dụng phương thức
53. Ví dụCode language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
8Code language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
đầu ra
9Code language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
Như thể hiện rõ ràng trong đầu ra
54 là một thể hiện của lớp
Code language: Python [python]class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
3class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
56 là một thể hiện của lớp
Code language: Python [python]class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
7. Nó cũng là một thể hiện của lớp
Code language: Python [python]class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
3
Code language: Python [python]class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
54 không phải là một thể hiện của lớp
Code language: Python [python]class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
7
Code language: Python [python]class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
Trong thực tế, bạn sẽ thường sử dụng hàm
53 để kiểm tra xem một đối tượng có các phương thức nhất định hay không. Sau đó, bạn sẽ gọi các phương thức của đối tượng đóCode language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
lớp con
Để kiểm tra xem một lớp có phải là lớp con của lớp khác hay không, bạn sử dụng hàm
62. Ví dụCode language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
9Code language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
Sau đây định nghĩa lớp
63 kế thừa từ lớpCode language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
7Code language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
0Code language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
63 là lớp con của lớpCode language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
7. Nó cũng là một lớp con của lớpCode language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
3 như sauCode language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
1Code language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
Lưu ý rằng khi bạn định nghĩa một lớp không kế thừa từ bất kỳ lớp nào, nó sẽ hoàn toàn kế thừa từ lớp
68 dựng sẵnCode language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
Ví dụ, lớp
3 kế thừa hoàn toàn từ lớpCode language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
68. Do đó, nó là một lớp con của lớpCode language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"
68Code language: Python [python]
class Employee: def __init__[self, name, job_title]: self.name = name self.job_title = job_title def greet[self]: return f"Hi, it's {self.name}"