Hướng dẫn dùng define inherit python
Tính kế thừa (inheritance) là một trong những tính chất quan trọng của lập trình hướng đối tượng (object-oriented programming). Tính chất này đề cập đến việc định nghĩa một lớp mới (new class) dựa trên một lớp cũ đã có (existing class). Lớp mới được gọi là lớp dẫn xuất (derived class) hay lớp con (child class). Lớp cũ đã có gọi là lớp cơ sở (base class) hoặc lớp cha (parent class). Show Nội dung chính
1.1. Lớp con và lớp cha trong PythonPython cũng là một ngôn ngữ lập trình hướng đối tượng nên cũng hỗ trợ tính kế thừa. Bất kỳ một lớp nào trong Python cũng có thể là một lớp cơ sở. Cú pháp kế thừa trong Python:
DerivedClass sẽ kế thừa các thuộc tính và phương thức từ BaseClass. Việc này chủ yếu là để tái sử dụng code. Hơn nữa, DerivedClass có thể định nghĩa thêm các thuộc tính và phương thức của chính nó. Ví dụ tạo một lớp cha Person
Ví dụ lớp con Student kế thừa lớp cha Person
Kết quả
Trong ví dụ trên, lớp Student kế thừa lớp Person mà không thêm bất cứ thuộc tính và phương thức nào cho riêng lớp Student. Tức là, lớp Student có cùng thuộc tính và phương thức như lớp Person. Có những trường hợp lớp con không định nghĩa gì như lớp Student. Khi tạo một đối tượng của lớp Student thì Python sẽ gọi hàm 1.2. Định nghĩa hàm __init__() trong lớp conChúng ta có thể định nghĩa lại hàm khởi tạo
Trong ví dụ trên, chúng ta gọi lại hàm
Hàm 1.3. Lớp con có các thuộc tính và phương thức riêngLớp con thường có các thuộc tính và phương thức riêng của nó.
Kết quả
Trong ví dụ trên, lớp Student kế thừa từ lớp
Person. Và lớp Student có thêm thuộc tính id và phương thức 2. Method overriding trong PythonLớp con có thể định nghĩa lại các phương thức được kế thừa từ lớp cha. Đó được gọi là method overriding.
Kết quả
Trong ví dụ trên, lớp Student kế thừa phương thức 3. Sử dụng hàm isinstance() và issubclass() trong PythonHàm
Kết quả
Chúng ta thấy lớp Student kế thừa từ lớp Person. Do đó, các đối tượng của lớp Student cũng là các đối tượng của Person. Còn các đối tượng của Person không phải là của Student.
|