Danh mục

Bài giảng Lập trình hướng đối tượng: Chương 6 - Nguyễn Minh Thành

Số trang: 34      Loại file: pdf      Dung lượng: 368.18 KB      Lượt xem: 10      Lượt tải: 0    
10.10.2023

Xem trước 4 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Nội dung trình bày trong chương 6 Kế thừa lớp đối tượng thuộc bài giảng lập trình hướng đối tượng nhằm trình bày về các nội dung chính: tổng quát hoá & chuyên biệt hoá, sự kế thừa, quá tải hàm trong kế thừa, các loại kế thừa và hàm dựng và huỷ trong kế thừa.
Nội dung trích xuất từ tài liệu:
Bài giảng Lập trình hướng đối tượng: Chương 6 - Nguyễn Minh Thành 1Kế Thừa Lớp Đối TượngMôn Lập Trình Hướng Đối Tượng – Chương 6Nguyễn Minh Thành[M] : Thanhnm@itc.edu.vn 2Nội Dung1. Tổng quát hoá & chuyên biệt hoá2. Sự kế thừa3. Quá tải hàm trong kế thừa4. Các loại kế thừa5. Hàm dựng và huỷ trong kế thừa 31. Tổng quát hoá & chuyên biệt hoá• Các lớp đối tượng trong thực tế không tồn tại độc lập mà có mối quan hệ với nhau.• Tổng quát hoá và chuyên biệt hoá là mối hai quan hệ đặc biệt, là mối quan hệ phân cấp và hỗ trợ lẫn nhau. ▫ Ví dụ : Động vật là một lớp đối tượng. Loài mèo là một lớp đối tượng khác và cũng là động vật.   Loài Mèo, khỉ… là chuyên biệt hoá của động vật   Động vật là tổng quát hoá của mèo, khỉ… 4Ký hiệu • A: Là trường hợp tổng quát của B A • B: Là trường hợp chuyên biệt của A B A  A: Là trường hợp tổng quát của B và C  B, C: Là trường hợp đặc biệt của A B C 51. Tổng quát hoá & chuyên biệt hoá• Trong lập trình HĐT, cần thể hiện được 2 mối quan hệ này nhằm: ▫ Tái sử dụng lại chương trình ▫ Mở rộng được chương trình ▫ Đảm bảo tính uyển chuyển của chương trình Tính kề thừa 6Vi dụ 1Xây dựng lớp ngày trong ứng dụng tính tiền lãi của một ngânhàng thành lập ngày 14/3/1997Giả sử đã xây dựng lớp CNGAY•Cách 1: Sửa lại lớp CNGAY cho phù hợp với các yêu cầu của lớpCNGAYNH trong ứng dụng trên  Sửa lại hàm kiểm tra Ảnh hưởng đến các chương trình khác có sử dụng lớp CNGAYở dạng tổng quát.•Cách 2: Xây dựng lớp CNGAYNH độc lập với lớp CNGAY Tốn nhiều công sức.•Cách 3: Sao chép lớp CNGAY để tạo lớp CNGAYNH và sau đó sửalại lớp CNGAYNH theo yêu cầu của chương trình Khó khăn do thực hiện thủ công khi mở rộng, cập nhật, ... Cần có cơ chế cho phép khai báo lớp CNGAYNH là lớp CNGAYvới 1 số các sửa đổi bổ sung. 7Ví dụ 1 (tt) CNGAY CNGAYNH 8Ví dụ 2Chương trình đánh cờ tướng trên máy tính Tương tự, mỗi quân cờ được xem như 1 điểm (phải dựavào lớp DIEM) nhưng mỗi quân cờ có những đặc điểm khác nhaudo vậy trên nền tảng lớp DIEM ta cần bổ sung và sửa đổi một sốphần chứ không phải tốn công sức để xây dựng lại từ đầu. CDIEM CQUANCO CXE CCHOT CPHAO CMA CTUONG CSI CVOI 9Ví dụ 3Ví dụ 3: Chương trình quản lý giáo vụ trường phổ thông (Giáoviên, học sinh, phụ huynh, công nhân viên, ...) CNGUOI CHOCSINH CGIAOVIEN CVANPHONG CPHUHUYNH 102. Khái niệm Kế thừa là 1 cơ chế trong ngôn ngữ lập trình hướng đối tượng cho phép thể hiện quan hệ đặc biệt hoá trong sơ đồ lớp bằng cách cho phép khai báo 1 lớp B là 1 lớp dẫn xuất từ lớp A (B là trường hợp đặc biệt của A) khi đó B sẽ có tất cả các thuộc tính và đặc điểm của A ngoài ra B có thể có thêm những thuộc tính mới, những hàm kiểm tra ràng buộc mới, những hoạt động khởi tạo, cập nhật, cung cấp thông tin và xử lý mới. 11Khái niệm(tt) Một trong những tính chất quan trọng mong muốn trong phương pháp lập trình hướng đối tượng là khả năng tái sử dụng các lớp đã được định nghĩa. Do đó, với kế thừa, người lập trình có thể định nghĩa lớp đối tượng mới dựa trên 1 hay nhiều lớp đối tượng đã có sẵn. Lớp có sẵn được gọi là lớp cơ sở (based class) và lớp kế thừa được gọi là lớp dẫn xuất (derived class) 12Khái niệm (tt) C A B * * * *- - *- - - *- +*+ ++*+* **- - * - - * +*+ ++*+ A B * tính chất chung - tính chất của A -------- ++++ +++ -- +++ + tính chất của B 13 Khai báoclass TênLớpCha{ Thuộc tính và phương thức của lớp cha};class TênLớpDẫnXuất : TênLớpCha{ Thuộc tính và phương thức bổ sung của lớp dẫn xuất}; 14 Quá Tải Hàm trong kế thừaCó 2 cách để định nghĩa hành động bổ sung cho phương thức đã có sẵn ởlớp cha trong lớp dẫn xuất (phương th ...

Tài liệu được xem nhiều: