Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 27 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
27
Dung lượng
786,5 KB
Nội dung
1Phương pháp lập trình hướng đối tượng – GV. Nguyễn Minh Huy Kế thừa Kế thừa 2 Phương pháp lập trình hướng đối tượng – GV. Nguyễn Minh Huy Nội dung Nội dung Khái niệm kế thừa. Khái niệm kế thừa. Tầm vực trong kế thừa. Tầm vực trong kế thừa. Định nghĩa lại phương thức. Định nghĩa lại phương thức. Quan hệ IS-A và HAS-A. Quan hệ IS-A và HAS-A. Bài tập. Bài tập. 3 Phương pháp lập trình hướng đối tượng – GV. Nguyễn Minh Huy Nội dung Nội dung Khái niệm kế thừa. Khái niệm kế thừa. Tầm vực trong kế thừa. Tầm vực trong kế thừa. Định nghĩa lại phương thức. Định nghĩa lại phương thức. Quan hệ IS-A và HAS-A. Quan hệ IS-A và HAS-A. Bài tập. Bài tập. 4 Phương pháp lập trình hướng đối tượng – GV. Nguyễn Minh Huy Khái niệm kế thừa Khái niệm kế thừa Vấn đề trùng lấp thông tin: Vấn đề trùng lấp thông tin: Nhiều lớp có thông tin giống nhau. Nhiều lớp có thông tin giống nhau. Có 2 dạng: Có 2 dạng: Dạng chia sẻ: A ∩ B ≠ Ø. Dạng chia sẻ: A ∩ B ≠ Ø. Dạng mở rộng: B = A + Dạng mở rộng: B = A + ε ε . . Nhược điểm: Nhược điểm: Xây dựng tốn kém. Xây dựng tốn kém. Dung lượng lưu trữ lớn. Dung lượng lưu trữ lớn. Thay đổi phần chung khó khăn. Thay đổi phần chung khó khăn. A x, y, z a, b, c A x, y, z a, b, c B x, y, z u, v, w B x, y, z u, v, w A x, y, z A x, y, z B x, y, z a, b, c B x, y, z a, b, c Giải quyết: tái sử dụng!! Giải quyết: tái sử dụng!! 5 Phương pháp lập trình hướng đối tượng – GV. Nguyễn Minh Huy Khái niệm kế thừa Khái niệm kế thừa Khái niệm kế thừa: Khái niệm kế thừa: Định nghĩa lớp mới dựa trên những lớp đã có. Định nghĩa lớp mới dựa trên những lớp đã có. Lớp cơ sở: Lớp cơ sở: lớp dùng để định nghĩa lớp mới. lớp dùng để định nghĩa lớp mới. Lớp kế thừa: Lớp kế thừa: lớp được định nghĩa từ lớp đã có. lớp được định nghĩa từ lớp đã có. Lớp kế thừa thừa hưởng Lớp kế thừa thừa hưởng TẤT CẢ TẤT CẢ từ lớp cơ sở. từ lớp cơ sở. A x, y, z a, b, c A x, y, z a, b, c B x, y, z u, v, w B x, y, z u, v, w B x, y, z a, b, c B x, y, z a, b, c O x, y, z O x, y, z A x, y, z A x, y, z 6 Phương pháp lập trình hướng đối tượng – GV. Nguyễn Minh Huy Khái niệm kế thừa Khái niệm kế thừa Khai báo trong C++: Khai báo trong C++: class <Lớp kế thừa> : <Loại kế thừa> <Lớp cơ sở> class <Lớp kế thừa> : <Loại kế thừa> <Lớp cơ sở> Loại kế thừa: Loại kế thừa: public, private, protected. public, private, protected. Ví dụ: Ví dụ: class A : public O class A : public O { { private: private: // Khai báo thuộc tính mới của A. // Khai báo thuộc tính mới của A. public: public: // Khai báo phương thức mới của A. // Khai báo phương thức mới của A. }; }; 7 Phương pháp lập trình hướng đối tượng – GV. Nguyễn Minh Huy Khái niệm kế thừa Khái niệm kế thừa Ví dụ: Ví dụ: Thông tin: Thông tin: Họ tên. Họ tên. Mức lương. Mức lương. Số ngày nghỉ. Số ngày nghỉ. Công việc: Công việc: Giảng dạy. Giảng dạy. Tính lương. Tính lương. Thông tin: Thông tin: Họ tên. Họ tên. Mức lương. Mức lương. Số ngày nghỉ. Số ngày nghỉ. Lớp chủ nhiệm. Lớp chủ nhiệm. Công việc: Công việc: Giảng dạy. Giảng dạy. Tính lương. Tính lương. Sinh hoạt chủ nhiệm. Sinh hoạt chủ nhiệm. Giáo viên Giáo viên GVCN GVCN 8 Phương pháp lập trình hướng đối tượng – GV. Nguyễn Minh Huy Khái niệm kế thừa Khái niệm kế thừa Ví dụ: Ví dụ: class GiaoVien class GiaoVien { { private: private: char char *m_sHoTen; *m_sHoTen; float float m_fMucLuong; m_fMucLuong; int int m_iSoNgayNghi; m_iSoNgayNghi; public: public: GiaoVien(char *sHoTen, GiaoVien(char *sHoTen, float fMucLuong, float fMucLuong, int iSoNgayNghi); int iSoNgayNghi); void giangDay(); void giangDay(); float tinhLuong(); float tinhLuong(); }; }; class class GVCN GVCN : public : public GiaoVien GiaoVien { { private: private: char char *m_sLopCN; *m_sLopCN; public: public: GVCN(char *sHoTen, GVCN(char *sHoTen, float fMucLuong, float fMucLuong, int iSoNgayNghi, int iSoNgayNghi, char *sLopCN); char *sLopCN); void sinhHoatCN(); void sinhHoatCN(); }; }; Lớp kế thừa Lớp kế thừa Lớp cơ sở Lớp cơ sở GVCN thừa hưởng TẤT CẢ thuộc tính và phương thức của GiaoVien GVCN thừa hưởng TẤT CẢ thuộc tính và phương thức của GiaoVien 9 Phương pháp lập trình hướng đối tượng – GV. Nguyễn Minh Huy Khái niệm kế thừa Khái niệm kế thừa Ví dụ: Ví dụ: void main() void main() { { GiaoVien gv1(“Minh”, 500000, 5); GiaoVien gv1(“Minh”, 500000, 5); gv1.giangDay(); gv1.giangDay(); float fLuong1 = gv1.tinhLuong(); float fLuong1 = gv1.tinhLuong(); GVCN gv2(“Hanh”, 700000, 3); GVCN gv2(“Hanh”, 700000, 3); gv2.giangDay(); gv2.giangDay(); gv2.sinhHoatCN(); gv2.sinhHoatCN(); float fLuong2 = float fLuong2 = gv2.tinhLuong(); gv2.tinhLuong(); } } 10 Phương pháp lập trình hướng đối tượng – GV. Nguyễn Minh Huy Nội dung Nội dung Khái niệm kế thừa. Khái niệm kế thừa. Tầm vực trong kế thừa. Tầm vực trong kế thừa. Định nghĩa lại phương thức. Định nghĩa lại phương thức. Quan hệ IS-A và HAS-A. Quan hệ IS-A và HAS-A. Bài tập. Bài tập. [...]... A kế thừa B HAS-A: A bao hàm B => B là thuộc tính của A Phương pháp lập trình hướng đối tượng – GV Nguyễn 22 Nội dung Khái niệm kế thừa Tầm vực trong kế thừa Định nghĩa lại phương thức Quan hệ IS-A và HAS-A Bài tập Phương pháp lập trình hướng đối tượng – GV Nguyễn 23 Bài tập Bài tập 9. 1: Những cặp đối tượng sau có quan hệ IS-A hay HAS-A? Khai báo lớp cho từng cặp thể hiện quan hệ giữa... Phương pháp lập trình hướng đối tượng – GV Nguyễn 24 Bài tập Bài tập 9. 2: Cho lớp TaiKhoan: class TaiKhoan { private: float m_fSoDu = 0; public: float baoSoDu() { return m_fSoDu; } void napTien(float fSoTien) { m_fSoDu += fSoTien; } void rutTien(float fSoTien) { if (fSoTien . 1Phương pháp lập trình hướng đối tượng – GV. Nguyễn Minh Huy Kế thừa Kế thừa 2 Phương pháp lập trình hướng đối tượng – GV. Nguyễn Minh Huy Nội dung Nội dung Khái. lại phương thức. Quan hệ IS-A và HAS-A. Quan hệ IS-A và HAS-A. Bài tập. Bài tập. 19 Phương pháp lập trình hướng đối tượng – GV. Nguyễn Minh Huy Quan hệ IS-A và HAS-A Quan hệ IS-A và HAS-A Quan. lại phương thức. Quan hệ IS-A và HAS-A. Quan hệ IS-A và HAS-A. Bài tập. Bài tập. 4 Phương pháp lập trình hướng đối tượng – GV. Nguyễn Minh Huy Khái niệm kế thừa Khái niệm kế thừa Vấn đề