Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 18 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
18
Dung lượng
371,79 KB
Nội dung
Kế thừa (inheritance) EE3490: Kỹ thuật lập trình – HK1 2011/2012 Đào Trung Kiên – ĐH Bách khoa Hà Nội Khái niệm Để quản lý nhân công ty, ta định nghĩa lớp tương ứng với vị trí làm việc cơng ty: class Worker { private: string name; float salary; int level; public: string getName() { } void pay() { } void doWork() { } }; class Manager { private: string name; float salary; int dept; public: string getName() { } void pay() { } void doWork() { } }; class Director { private: string name; float salary; public: string getName() { } void pay() { } void doWork() { } }; Cả lớp có biến hàm giống hệt nội dung tạo lớp Employee chứa thông tin chung để sử dụng lại Sử dụng lại code Giảm số code cần viết Dễ bảo trì, sửa đổi sau Rõ ràng mặt logic thiết kế chương trình EE3490: Kỹ thuật lập trình – HK1 2011/2012 Đào Trung Kiên – ĐH Bách khoa Hà Nội Khái niệm (tiếp) Lớp mẹ (hay lớp sở) Các lớp (hay lớp dẫn xuất) Worker Employee Manager Director Hai hướng thừa kế: Cụ thể hoá: lớp trường hợp riêng lớp mẹ (như ví dụ trên) Tổng quát hoá: mở rộng lớp mẹ (vd: Point2D thêm biến z để thành Point3D) Kế thừa cho phép lớp sử dụng biến phương thức lớp mẹ nó, trừ biến phương thức private Kế thừa với public private: public: thành phần public lớp mẹ public lớp private: toàn thành phần lớp mẹ trở thành private lớp EE3490: Kỹ thuật lập trình – HK1 2011/2012 Đào Trung Kiên – ĐH Bách khoa Hà Nội Kế thừa public class Employee { private: string name; float salary; public: string getName() { } void pay() { } }; class Worker : public Employee { private: int level; public: void doWork() { } void show() { cout