Tham khảo tài liệu 'chương 4: kế thừa', công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả | Hà Văn Sang Bộ môn: Tin học TC – KT Khoa: Hệ Thống Thông Tin Kinh tế - Học Viện Tài Chính Tel: Email: sanghv@ Website: Lập trình hướng đối tượng CHƯƠNG IV Kế thừa 1. Khái niệm Kế thừa: là khả năng cho phép xây dựng một lớp mới Được thừa hưởng các thành phần từ một hay nhiều lớp đã có (lớp cơ sở). Trong lớp ta có thể bổ sung thêm các thành phần hoặc định nghĩa lại các thành phần Ví dụ 1: Xây dựng lớp PS1 {ts, ms, nhập, in, tối giản} Lớp PS2 {ts, ms, nhập, in, tối giản, cộng, trừ, nhân chia phân số} 1. Khái niệm (tiếp) Ví dụ 2: Yêu cầu xây dựng 3 lớp Lớp NGƯỜI Lớp SV Lớp GV NGƯỜI Dl: ht, ns, gt Pt: nhap(), in() SV Dl: ht, ns, gt Pt: nhap(), in(), xếp loại() GV Dl: ht, ns, gt Pt: nhap(), in(), tangluong() 1. Khái niệm (tiếp) Kế thừa tạo ra mô hình phân cấp: PS1 PS2 NGƯỜI SV GV Mô hình kế thừa tạo ra một quan hệ “is a” Ví dụ: một đối tượng SV “là một” loại thuộc lớp NGƯỜI 1. Khái niệm (tiếp) Các loại kế thừa: PS1 PS2 C A B Kế thừa đơn: chỉ có một lớp cơ sở Đa kế thừa: có nhiều hơn một lớp cơ sở 2. Xây dựng lớp dẫn xuất Cú pháp class :[kiểu dẫn xuất] ,[kiểu dẫn xuất] { // Các thành phần của lớp con }; 2. Xây dựng lớp dẫn xuất Trong đó: Kiểu dẫn xuất có thể là: public public: tất cả các tp public của lớp cha sẽ là pubic ở lớp con private: tất cả các thành phần public của lớp cha sẽ là private ở lớp con protected private (ngầm định) 3. Quyền truy xuất (1) Quyền truy xuất tp đó ở lớp cha : (2) Kiểu dẫn xuất private protected public private private private private protected private protected protected public private protected public (1) (2) Quyền truy xuất ở lớp con Chú ý Ví dụ: Phân số Chú ý: Có thể gán 1 đối tượng của lớp con vào một đối tượng của lớp cha PS a; PS1 b; a=b;// ok b=a; // problem Khi gán, các tp thừa (ko có trong lớp cha) sẽ bị cắt tỉa và chuyển đổi kiểu lên an toàn bị cắt lấp đầy 4. Định nghĩa lại quyền truy xuất Để định nghĩa lại: Chỉ cần liệt kê thành phần | Hà Văn Sang Bộ môn: Tin học TC – KT Khoa: Hệ Thống Thông Tin Kinh tế - Học Viện Tài Chính Tel: Email: sanghv@ Website: Lập trình hướng đối tượng CHƯƠNG IV Kế thừa 1. Khái niệm Kế thừa: là khả năng cho phép xây dựng một lớp mới Được thừa hưởng các thành phần từ một hay nhiều lớp đã có (lớp cơ sở). Trong lớp ta có thể bổ sung thêm các thành phần hoặc định nghĩa lại các thành phần Ví dụ 1: Xây dựng lớp PS1 {ts, ms, nhập, in, tối giản} Lớp PS2 {ts, ms, nhập, in, tối giản, cộng, trừ, nhân chia phân số} 1. Khái niệm (tiếp) Ví dụ 2: Yêu cầu xây dựng 3 lớp Lớp NGƯỜI Lớp SV Lớp GV NGƯỜI Dl: ht, ns, gt Pt: nhap(), in() SV Dl: ht, ns, gt Pt: nhap(), in(), xếp loại() GV Dl: ht, ns, gt Pt: nhap(), in(), tangluong() 1. Khái niệm (tiếp) Kế thừa tạo ra mô hình phân cấp: PS1 PS2 NGƯỜI SV GV Mô hình kế thừa tạo ra một quan hệ “is a” Ví dụ: một đối tượng SV “là một” loại thuộc lớp NGƯỜI 1. Khái niệm (tiếp) Các loại kế thừa: PS1 PS2 C A B Kế thừa đơn: