Bài giảng “Phương pháp lập trình hướng đối tượng – Tuần 9: Đa kế thừa” cung cấp cho người học các kiến thức: Đa kế thừa - nhập nhằng hàm trùng tên, vấn đề hình thoi, khái niệm Interface, xử lý lỗi và ngoại lệ, qui tắc xử lý lỗi, Mời các bạn cùng tham khảo. | Bài giảng Phương pháp lập trình hướng đối tượng Tuần 9 Phạm Tú San Tuần 09 Đa kế thừa ĐA KẾ THỪA Đa kế thừa Đa kế thừa Một lớp có thể kế thừa từ nhiều lớp khác. Khi đó Ví dụ B C class A public B public C . A Đa kế thừa Các thành phần dữ liệu và phương thức của B và C sẽ được kế thừa trong lớp dẫn xuất A tương tự như kế thừa đơn Tính chất đa xạ thông qua phương thức ảo vẫn hoạt động tương tự như trong kế thừa đơn. Ví dụ class B void draw void doSth A amp a class C B draw void cal C cal class A public B public C A process void process Đa kế thừa nhập nhằng hàm trùng tên Nếu trong lớp B và C có các biến hay phương thức trùng tên nhau thì tại lớp A để xác định là biến phương thức đó từ B hay từ C chúng ta phải sử dụng toán tử phạm vi int main A a error ambiguous tinh OK tinh OK Vấn đề hình thoi class A . class B public A . class C public A . class D public B public C . Theo như khai báo ở trên các biến phương thức trong A sẽ được kế thừa lặp lại trong D Vấn đề hình thoi giải pháp Giải pháp sử dụng lớp cơ sở ảo virtual base class class A . class B public virtual A . class C public virtual A . class D public B public C . Khi đó trong lớp D chỉ có duy nhất 1 A Đa kế thừa - interface Không được hỗ trợ trong C và java Thay vào đó là khái niệm interface Interface 2 Interface 1 A Khái niệm Interface Interface là một phần của lớp Lớp Interface cài đặt Interface quy định tính năng cung cấp ra bên ngoài Tivi interface là hệ thống nút bấm Interface - Java interface Bicycle wheel revolutions per minute void changeGear int newValue void speedUp int increment void applyBrakes int decrement class ACMEBicycle implements Bicycle remainder of this class implemented as before Bicycle b new ACMEBicycle Interface C C giả lập interface bằng abstract class abstract class Tất cả các phương thức đều thuần ảo Dynamic binding - Interface class A public Interface1 public Interface2 public void ham1 void ham2 class Interface1 class Interface2 public public .