Bài giảng Ngôn ngữ lập trình: Kế thừa cung cấp cho người học những kiến thức như: Kế thừa là gì; Tại sao phải kế thừa; Cách thực hiện; Những điều cần lưu ý; Các kiểu kế thừa. Mời các bạn cùng tham khảo!
NGƠN NGỮ LẬP TRÌNH Kế thừa fit.hnue.edu.vn/~dungntp/NNLT 20/04/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN Mục tiêu học • • • • • Kế thừa gì? Tại phải kế thừa? Cách thực Những điều cần lưu ý Các kiểu kế thừa 20/04/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN Kế thừa gì? 20/04/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN Kế thừa dùng lại có cịn 20/04/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN Tại phải kế thừa? 20/04/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN Để đỡ phải viết lại code nhiều lần :D 20/04/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN Làm nào? 20/04/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN Xét ví dụ sau Tạo danh sách SV bao gồm thông tin: – Mã SV – Họ tên – Ngày sinh – Quê quán – Địa thường trú 20/04/2018 – Điểm toán – Điểm văn – Điểm NN – Điểm TB – … Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN Xét ví dụ sau Tạo danh sách CB bao gồm thông tin: – Mã CB – Họ tên – Ngày sinh – Quê quán – Địa thường trú 20/04/2018 – Hệ số lương – Hệ số thâm niên – Phụ cấp – Tổng lương – … Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN Như loại đối tượng chung liệu gì? – Mã – Họ tên – Ngày sinh – Quê quán – Địa thường trú – … 20/04/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 10 - - 20/04/2018 Sử dụng lại code -> giảm số code cần viết Dễ bảo trì, sửa đổi Làm chương trình rõ ràng, dễ hiểu Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 27 Nhưng muốn lấy mã SV kt xem SV thuộc khóa làm nào? 20/04/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 28 Uh nhỉ? Không lấy Vì mã thành phần thuộc quyền truy cập private 20/04/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 29 A.Có cách rồi! Thay quyền truy cập thành phần private lớp cha thành protected 20/04/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 30 Quyền truy cập protected? 20/04/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 31 Yes, Những sau từ khóa protected lớp truy cập mà bên ngồi khơng thể 20/04/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 32 Thử xem 20/04/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 33 Những điểm cần ý • 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 • Lớp chuyển kiểu thành lớp mẹ, ngược lại không 20/04/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 34 Những điều cần ý • Chú ý khái niệm: có – VD: • Một Cán Con người (quan hệ kế thừa) • Một Con người có Ngày sinh (sử dụng kiểu lớp khác làm thành phần) 20/04/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 35 Những điểm cần ý • Một số hàm không kế thừa: – Hàm tạo – Hàm hủy – Các hàm nạp chồng toán tử 20/04/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 36 Những điểm cần ý • Đa thừa kế: Một lớp kế thừa từ nhiều lớp VD: Class A: public B, C{ }; 20/04/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 37 Ví dụ đa thừa kế 20/04/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 38 Tuy nhiên không nên dùng dễ xảy nhập nhằng • Nếu thực cần dùng phải gọi tường minh – Ví dụ lớp A có phương thức a() thừa kế – Lời gọi a từ đối tượng lớp D D d; d.B::a(); d.C::a(); 20/04/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 39 Những điểm cần ý • Nạp chồng khác với định nghĩa lại – Nạp chồng: tên hàm giống hệt trước, phải khác kiểu trả khác tham số – Định nghĩa lại: tên hàm phải giống, kiểu trả tham số phải giống hệt trước, khác cách làm việc 20/04/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 40 Các kiểu kế thừa Kiểu kế thừa public protected private Phạm vi private private private private thành protected protected protected private phần lớp public public protected private cha 20/04/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 41 ... • • • Kế thừa gì? Tại phải kế thừa? Cách thực Những điều cần lưu ý Các kiểu kế thừa 20/04/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN Kế thừa gì? 20/04/2018 Nguyễn Thị Phương Dung - Khoa... 20/04/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 11 Quá 20/04/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 12 Thế giải pháp gì? Nói nhanh 20/04/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN... Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 24 Như có tiện lợi ko? 20/04/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 25 Quá tiện lợi luôn? 20/04/2018 Nguyễn Thị Phương Dung - Khoa CNTT -