Hướng dẫn python subclass dict
Cho đến nay, những chủ đề về lập trình hướng đối tượng trong Python mà chúng ta đã thảo luận là: Show Nội dung chính
– Phần 1 (lớp, đối tượng và các thành viên của lớp) – Phần 2 (che giấu dữ liệu và in đối tượng) Trong bài học này, tính kế thừa sẽ được giới thiệu. Một trong các lợi thế chính của lập trình hướng đối tượng đó là khả năng tái sử dụng của code. Và kế thừa chính là một trong các cơ chế để đạt được điều đó. Trong kế thừa, một lớp (thường được gọi là lớp cha – super class) sẽ được kế thừa lại bởi một lớp khác (thường gọi là lớp con – subclass). Lớp con này sẽ bổ sung thêm một số thuộc tính cho lớp cha. Dưới đây là một đoạn chương trình được viết bằng Python, mô tả cách cài đặt kế thừa trong Python
Kết quả in ra là:
1. Làm thế nào để kiểm tra xem một lớp có phải là lớp con của lớp khác khôngPython có cung cấp một hàm có tên là issubclass(), có thể trực tiếp nói cho lập trình viên biết rằng lớp được xét này có phải là lớp con của một lớp khác hay không.
Kết quả in ra là:
2. Object class – lớp đối tượng là gì?Cũng giống như lớp đối tượng trong Java, bắt đầu từ phiên bản 3.x của Python, đối tượng là gốc rễ của tất cả các lớp. Trong Python 3.x, “class Test(object)” và “class Test” là như nhau. Trong Python 2.x, “class Test(object)” sẽ tạo ra một lớp có đối tượng object làm lớp cha (được gọi là new style class), còn “class Test” sẽ tạo ra một old style class – lớp bình thường (không có đối tượng nào làm lớp cha của nó) 3. Python có hỗ trợ đã kế thừa – multiple inheritance không?Không giống như Java và giống như C++, Python có hỗ trợ đã kế thừa. Chúng ta có thể chỉ định nhiều lớp cha, phân cách nhau bởi dấu phẩy, và tất cả được bao trong một cặp dấu ngoặc tròn () để thực hiện đa kế thừa. Dưới đây là ví dụ mô tả cách thức hoạt động của đa kế thừa trong Python
Kết quả in ra là:
4. Làm thế nào để truy cập tới các thành viên của lớp cha, tại lớp con?1. Sử dụng tên lớp cha Đoạn code ví dụ cho thấy các thành viên của lớp cha có thể được truy cập tới từ bên trong các lớp con, bằng cách sử dụng tên của lớp cha.
Kết quả in ra là:
2. Sử dụng hàm super() Chúng ta cũng có thể truy cập tới các thành viên của lớp cha bằng cách sử dụng hàm super(). Đoạn code dưới đây sẽ mô tả cách sử dụng hàm super() để truy cập tới các thành viên của lớp cha, từ lớp con
Kết quả in ra là:
Lưu ý rằng, hai phương thức ở trên không hoàn toàn giống nhau. Trong bài học tiếp theo về kế thừa, chúng ta sẽ thảo luận tiếp hai chủ đề sau: – Cách thức hoạt động của super? Làm thế nào mà việc truy cập tới thành viên (biến thành viên, hàm thành viên) của lớp cha, thông qua super và tên lớp cha lại khác nhau? – Vấn đề Diamon (kim cương) được giải quyết thế nào trong Python? Nguồn và Tài liệu tiếng anh tham khảo:
Tài liệu từ cafedev:
Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:
Chào thân ái và quyết thắng! Đăng ký kênh youtube để ủng hộ Cafedev nha các bạn, Thanks you! |