NGÔN NGỮ LẬP TRÌNH<br />
<br />
Bài 7: KẾ THỪA<br />
<br />
Giảng viên: Nguyễn Xuân Hùng<br />
Mobile: 0908 386 366<br />
Email: nguyenxuanhung@wru.vn<br />
<br />
Nguyễn Xuân Hùng – Khoa CNTT – Trường Đại học Thủy Lợi<br />
<br />
NỘI DUNG<br />
1. Các kiểu kế thừa.<br />
2. Hàm ảo<br />
3. Lớp trừu tượng và hàm thuần ảo<br />
<br />
2<br />
<br />
Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi<br />
<br />
12/18/2014<br />
<br />
1. Kế thừa<br />
Thừa kế là một quá trình mà một lớp mới (lớp dẫn xuất-derived<br />
<br />
class) được tạo ra từ một lớp khác gọi là lớp cơ sở - base<br />
class. Lớp dẫn xuất sẽ tự động có các biến thành viên và tất cả<br />
hàm thành viên của lớp cơ sở, và nó có thể thêm các biến<br />
thành viên và hàm thành viên của chính nó.<br />
Ví dụ: class Student, Doctor, Person<br />
Student, Doctor đều có tên, tuổi, địa chỉ giống như lớp Person<br />
Nhưng nó sẽ có một số biến thành viên khác như: học sinh thêm<br />
<br />
thuộc tính môn học, bác sĩ có thêm thuộc tính chuyên môn<br />
<br />
Ví dụ: Class Employee, Worker, Manager, Director<br />
4 lớp trên đều có tên, tuổi, địa chỉ…<br />
Nhưng một số lớp khác có thêm các đặc tính riêng như:<br />
<br />
worker có cấp bậc, manager có quản lý phòng nào.<br />
3<br />
<br />
Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi<br />
<br />
12/18/2014<br />
<br />
1. Kế thừa<br />
<br />
Cả 3 lớp trên đều có những hàm và biến giống hệt nhau. Do đó<br />
<br />
thay vì tạo ra ba lớp riêng biệt, chúng ta cần tạo một lớp chung<br />
Employee chứa các thông tin chung đó để sử dụng lại.<br />
Ưu điểm: Sử dụng lại mã nguồn giảm mã nguồn viết lại, dễ<br />
dàng bảo trì, sửa đổi về sau, rõ ràng về mặt logic trong thiết kế<br />
chương trình.<br />
4<br />
<br />
Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi<br />
<br />
12/18/2014<br />
<br />
1. Kế thừa<br />
<br />
Kế thừa cho phép lớp con sử dụng các biến và phương<br />
<br />
thức của lớp cha, trừ các biến và phương thức mức<br />
private.<br />
<br />
5<br />
<br />
Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi<br />
<br />
12/18/2014<br />
<br />