intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Phương pháp lập trình hướng đối tượng: Kế thừa

Chia sẻ: Năm Tháng Tĩnh Lặng | Ngày: | Loại File: PPT | Số trang:27

100
lượt xem
4
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài giảng Phương pháp lập trình hướng đối tượng: Kế thừa trình bày các nội dung như: 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. Mời các bạn cùng tham khảo.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Phương pháp lập trình hướng đối tượng: Kế thừa

  1. Kế thừa Phương pháp lập trình hướng đối tượng. 1
  2. 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. 2
  3. 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. 3
  4. Khái niệm kế thừa  Vấn đề trùng lấp thông tin:  Nhiều lớp có thông tin giống nhau.  Có 2 dạng: A B  Dạng chia sẻ: A ∩ B ≠ Ø. x, y, z x, y, z  Dạng mở rộng: B = A + ε. a, b, c u, v, w  Nhược điểm:  Xây dựng tốn kém. A B x, y, z x, y, z  Dung lượng lưu trữ lớn. a, b, c  Thay đổi phần chung khó khăn. Giải quyết: tái sử dụng!! Phương pháp lập trình hướng đối tượng. 4
  5. 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ó.  Lớp cơ sở: lớp dùng để định nghĩa lớp mới.  Lớp kế thừa: lớp được định nghĩa từ lớp đã có.  Lớp kế thừa thừa hưởng TẤT CẢ từ lớp cơ sở. O A x, y, z x, y, z A B B x, y, z x, y, z x, y, z a, b, c u, v, w a, b, c Phương pháp lập trình hướng đối tượng. 5
  6. Khái niệm kế thừa  Khai báo trong C++: class :  Loại kế thừa:  public, private, protected.  Ví dụ: class A : public O { private: // Khai báo thuộc tính mới của A. public: // Khai báo phương thức mới của A. }; Phương pháp lập trình hướng đối tượng. 6
  7. Khái niệm kế thừa  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:  Lớp chủ nhiệm.  Giảng dạy.  Công việc: GVCN Giáo viên  Tính lương.  Giảng dạy.  Tính lương.  Sinh hoạt chủ nhiệm. Phương pháp lập trình hướng đối tượng. 7
  8. Khái niệm kế thừa Lớp Lớpkế kếthừa thừa Lớp Lớpcơ cơsở sở  Ví dụ: class GiaoVien class GVCN : public GiaoVien { { private: private: char *m_sHoTen; char *m_sLopCN; float m_fMucLuong; public: int m_iSoNgayNghi; GVCN(char *sHoTen, public: float fMucLuong, GiaoVien(char *sHoTen, int iSoNgayNghi, char *sLopCN); float fMucLuong, void sinhHoatCN(); int iSoNgayNghi); }; void giangDay(); GVCN thừa hưởng TẤT CẢ float tinhLuong(); thuộc tính và phương thức }; của GiaoVien Phương pháp lập trình hướng đối tượng. 8
  9. Khái niệm kế thừa  Ví dụ: void main() { GiaoVien gv1(“Minh”, 500000, 5); gv1.giangDay(); float fLuong1 = gv1.tinhLuong(); GVCN gv2(“Hanh”, 700000, 3); gv2.giangDay(); gv2.sinhHoatCN(); float fLuong2 = gv2.tinhLuong(); } Phương pháp lập trình hướng đối tượng. 9
  10. 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. 10
  11. Tầm vực trong kế thừa  Tầm vực thay đổi thế nào khi kế thừa? Lớp cơ sở Lớp kế thừa private: ???: m_iX Kế thừa m_iX protected: ???: m_iY m_iY public: ???: m_iZ m_iZ  Loại kế thừa quyết định!! Phương pháp lập trình hướng đối tượng. 11
  12. Tầm vực trong kế thừa  Bảng tầm vực trong kế thừa: Kế thừa Kế thừa Kế thừa Tầm vực public protected private public public protected private protected protected protected private Không thể Không thể Không thể private truy xuất truy xuất truy xuất Phương pháp lập trình hướng đối tượng. 12
  13. 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. 13
  14. Định nghĩa lại phương thức  Kế thừa một phần:  Không kế thừa “máy móc” tất cả.  Lớp kế thừa có thể thay đổi những gì đã kế thừa!!  Định nghĩa lại phương thức đã kế thừa. Lớp kế thừa thừa hưởng TẤT CẢ thuộc tính và phương thức của lớp cơ sở TRỪ những phương thức được định nghĩa lại!! Phương pháp lập trình hướng đối tượng. 14
  15. Định nghĩa lại phương thức  Ví dụ:  GVCN kế thừa từ GiaoVien.  GVCN tính lương khác GiaoVien.  Lương GV = Mức lương – Số ngày nghỉ * 10000.  Lương GVCN = Lương GV + Phụ cấp 50000.  Viết lại phương thức tinhLuong() cho lớp GVCN. Phương pháp lập trình hướng đối tượng. 15
  16. Định nghĩa lại phương thức  Ví dụ: class GiaoVien { private: char *m_sHoTen; float m_fMucLuong; int m_iSoNgayNghi; public: GiaoVien(char *sHoTen, float fMucLuong, int iSoNgayNghi); void giangDay(); float tinhLuong() { return m_fMucLuong – m_iSoNgayNghi * 10000; } }; Phương pháp lập trình hướng đối tượng. 16
  17. Định nghĩa lại phương thức  Ví dụ: class GVCN : public GiaoVien void main() { { private: GiaoVien gv1(“Minh”, 500000, 5); char *m_sLopCN; gv1.giangDay(); public: GVCN(char *sHoTen, float fLuong1 = gv1.tinhLuong(); float fMucLuong, int iSoNgayNghi, GVCN gv2(“Hanh”, 700000, 3); char *sLopCN); gv2.giangDay(); void sinhHoatCN(); float fLuong2 = gv2.tinhLuong(); float tinhLuong() } { return GiaoVien::TinhLuong() + 50000; } }; Phương pháp lập trình hướng đối tượng. 17
  18. 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. 18
  19. Quan hệ IS-A và HAS-A  Quan hệ IS-A:  Lớp A quan hệ IS-A với lớp B  A là một trường hợp đặc biệt của B.  A cùng loại với B.  Ví dụ:  GVCN là một GiaoVien đặc biệt.  HinhVuong là một HinhChuNhat đặc biệt.  ConMeo là một ConVat đặc biệt. Phương pháp lập trình hướng đối tượng. 19
  20. Quan hệ IS-A và HAS-A  Quan hệ HAS-A:  Lớp A quan hệ HAS-A với lớp B  A bao hàm B.  A chứa B.  B là một bộ phận của A.  Ví dụ:  ChiecXe chứa BanhXe.  QuyenSach chứa TrangSach. Phương pháp lập trình hướng đối tượng. 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2