Giáo trình Lập trình hướng đối tượng - Chương 12: Kế thừa
Hiểuđượccácloạiquanhệ?
Hiểu được kế thừa trong lập trình
hướng đối tượng là gì?
Hiểu được khái niệm cây kế thừa.
Hiểu được khái niệm sơ đồ lớp.
Tóm tắt nội dung Giáo trình Lập trình hướng đối tượng - Chương 12: Kế thừa, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
HĐTKhoa CNTT GV. Nguy ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 5. QUI TẮC KẾ THỪA TRONG C++ − Bảng qui tắc kế thừa trong C++ − Ghi chú: Từ khoá dẫn xuất có ba loại là private, protected, public. Các sinh viên tự tìm hiểu thêm từ khoá dẫn xuất protected trong tài liệu. Từ khóa dẫn xuất Phạm vi lớp cơ sở Private Public Private Protected Chương 12 - 35 LTHĐTKhoa CNTT GV. Nguy ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 5. QUI TẮC KẾ THỪA TRONG C++ − Bảng qui tắc kế thừa trong C++ − Ghi chú: Từ khoá dẫn xuất có ba loại là private, protected, public. Các sinh viên tự tìm hiểu thêm từ khoá dẫn xuất protected trong tài liệu. Từ khóa dẫn xuất Phạm vi lớp cơ sở Private Public Private Protected Public Chương 12 - 36 LTHĐTKhoa CNTT GV. Nguy ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 5. QUI TẮC KẾ THỪA TRONG C++ − Bảng qui tắc kế thừa trong C++ − Ghi chú: Từ khoá dẫn xuất có ba loại là private, protected, public. Các sinh viên tự tìm hiểu thêm từ khoá dẫn xuất protected trong tài liệu. Từ khóa dẫn xuất Phạm vi lớp cơ sở Private Protected Public Chương 12 - 37 LTHĐTKhoa CNTT GV. Nguy ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 5. QUI TẮC KẾ THỪA TRONG C++ − Bảng qui tắc kế thừa trong C++ − Ghi chú: Từ khoá dẫn xuất có ba loại là private, protected, public. Các sinh viên tự tìm hiểu thêm từ khoá dẫn xuất protected trong tài liệu. Từ khóa dẫn xuất Phạm vi lớp cơ sở Private Private Protected Public Chương 12 - 38 LTHĐTKhoa CNTT GV. Nguy ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 5. QUI TẮC KẾ THỪA TRONG C++ − Bảng qui tắc kế thừa trong C++ − Ghi chú: Từ khoá dẫn xuất có ba loại là private, protected, public. Các sinh viên tự tìm hiểu thêm từ khoá dẫn xuất protected trong tài liệu. Từ khóa dẫn xuất Phạm vi lớp cơ sở Private Public Private Protected Public Chương 12 - 39 LTHĐTKhoa CNTT GV. Nguy ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 5. QUI TẮC KẾ THỪA TRONG C++ − Bảng qui tắc kế thừa trong C++ − Ghi chú: Từ khoá dẫn xuất có ba loại là private, protected, public. Các sinh viên tự tìm hiểu thêm từ khoá dẫn xuất protected trong tài liệu. Từ khóa dẫn xuất Phạm vi lớp cơ sở Private Public Private || || Protected Public Chương 12 - 40 LTHĐTKhoa CNTT GV. Nguy ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 5. QUI TẮC KẾ THỪA TRONG C++ − Bảng qui tắc kế thừa trong C++ − Ghi chú: Từ khoá dẫn xuất có ba loại là private, protected, public. Các sinh viên tự tìm hiểu thêm từ khoá dẫn xuất protected trong tài liệu. Từ khóa dẫn xuất Phạm vi lớp cơ sở Private Public Private || || Protected private Public Chương 12 - 41 LTHĐTKhoa CNTT GV. Nguy ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 5. QUI TẮC KẾ THỪA TRONG C++ − Bảng qui tắc kế thừa trong C++ − Ghi chú: Từ khoá dẫn xuất có ba loại là private, protected, public. Các sinh viên tự tìm hiểu thêm từ khoá dẫn xuất protected trong tài liệu. Từ khóa dẫn xuất Phạm vi lớp cơ sở Private Public Private || || Protected private protected Public Chương 12 - 42 LTHĐTKhoa CNTT GV. Nguy ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 5. QUI TẮC KẾ THỪA TRONG C++ − Bảng qui tắc kế thừa trong C++ − Ghi chú: Từ khoá dẫn xuất có ba loại là private, protected, public. Các sinh viên tự tìm hiểu thêm từ khoá dẫn xuất protected trong tài liệu. Từ khóa dẫn xuất Phạm vi lớp cơ sở Private Public Private || || Protected private protected Public private Chương 12 - 43 LTHĐTKhoa CNTT GV. Nguy ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 5. QUI TẮC KẾ THỪA TRONG C++ − Bảng qui tắc kế thừa trong C++ − Ghi chú: Từ khoá dẫn xuất có ba loại là private, protected, public. Các sinh viên tự tìm hiểu thêm từ khoá dẫn xuất protected trong tài liệu. Từ khóa dẫn xuất Phạm vi lớp cơ sở Private Public Private || || Protected private protected Public private public Chương 12 - 44 LTHĐTKhoa CNTT GV. Nguy ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 5. QUI TẮC KẾ THỪA TRONG C++ − Các thuộc tính và phương thức được khai báo trong phạm vi private của lớp cơ sở thì sẽ không được hiểu ở lớp dẫn xuất. − Các thuộc tính và phương thức được khai báo trong phạm vi protected của lớp cơ sở nếu được dẫn xuất bằng từ khóa private thì các thuộc tính và phương thức đó sẽ được hiểu ở lớp dẫn xuất như là thành phần private của lớp dẫn xuất. − Các thuộc tính và phương thức được khai báo trong phạm vi protected của lớp cơ sở nếu được dẫn xuất bằng từ khóa public thì các thuộc tính và phương thức đó sẽ được hiểu ở lớp dẫn xuất hư là thành phần protected của lớp dẫn xuất. Chương 12 - 45 LTHĐTKhoa CNTT GV. Nguy ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 5. QUI TẮC KẾ THỪA TRONG C++ − Các thuộc tính và phương thức được khai báo trong phạm vi public của lớp cơ sở nếu được dẫn xuất bằng từ khóa private thì các thuộc tính và phương thức đó sẽ được hiểu ở lớp dẫn xuất như là thành phần private của lớp dẫn xuất. − Các thuộc tính và phương thức được khai báo trong phạm vi public của lớp cơ sở nếu được dẫn xuất bằng từ khóa public thì các thuộc tính và phương thức đó sẽ được hiểu ở lớp dẫn xuất như là thành phần public của lớp dẫn xuất. Chương 12 - 46 LTHĐTKhoa CNTT GV. Nguy ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 5. QUI TẮC KẾ THỪA TRONG C++ − Bảng qui tắc kế thừa trong C++ Từ khóa dẫn xuất Phạm vi lớp cơ sở Private Public Private (1) (2) Protected (3) (4) Public (5) (6) Chương 12 - 47 LTHĐTKhoa CNTT GV. Nguy ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 5. QUI TẮC KẾ THỪA TRONG C++ − Bảng qui tắc kế thừa trong C++ (1) (2) (3) (4) (5) (6) Chương 12 - 48 LTHĐTKhoa CNTT GV. Nguy ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 5. QUI TẮC KẾ THỪA TRONG C++ − Bảng qui tắc kế thừa trong C++ Chương 12 - 49 LTHĐTKhoa CNTT GV. Nguy ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 5. QUI TẮC KẾ THỪA TRONG C++ − Bảng qui tắc kế thừa trong C++ Chương 12 - 50 LTHĐTKhoa CNTT GV. Nguy ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 6. CÂY KẾ THỪA CHI TIẾT − Qui tắc vẽ cây kế thừa chi tiết: + Các thuộc tính và phương thức thuộc phạm vi private được vẽ với màu xanh bên trái. + Các thuộc tính và phương thức thuộc phạm vi protected được vẽ với màu xanh bên phải. + Các thuộc tính và phương thức thuộc phạm vi public được vẽ với màu đỏ bên phải. + Các thuộc tính và phương thức có được do kế thừa được vẽ bằng nét đứt không liên tục. + Các thuộc tính và phương thức của chính bản thân lớp được vẽ bằng nét liền liên tục. Chương 12 - 51 LTHĐTKhoa CNTT GV. Nguy ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 6. CÂY KẾ THỪA CHI TIẾT A B a f() b g() c h() t aa() b g() z xy() c h() public Chương 12 - 52 LTHĐTKhoa CNTT GV. Nguy ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 6. CÂY KẾ THỪA CHI TIẾT A B y g() C p ab() z abc(int) public public ab() mn() xyz() k a f() x q t h() x uv() x ab() y g() k mn() p ab() g() y Chương 12 - 53 LTHĐTKhoa CNTT GV. Nguy ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 7. TOÁN TỬ GÁN TRONG KẾ THỪA − Ví dụ dẫn nhập 01: Hãy cho biết trong chương trình dưới đây câu lệnh nào đúng câu lệnh nào sai: 11.class A 12.{ 13. ... 14.}; 15.class B:public A 16.{ 17. ... 18.}; 19.void main() 20.{ 21. A a; 22. B b; 23. a = b; 24. b = a; 25.} Chương 12 - 54 LTHĐTKhoa CNTT GV. Nguy ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 7. TOÁN TỬ GÁN TRONG KẾ THỪA − Ví dụ dẫn nhập 02: Hãy cho biết đoạn chương trình dưới đây câu lệnh nào đúng, câu lệnh nào sai: 1. class A 2. { 3. ... 4. }; 9. void main() 10.{ 11. A *a; 12. B *b; 13. A x; 14. B y; 15. a = &x; 16. b = &y; 17. a = &y; 18. b = &x; 19.} 5. class B: public A 6. { 7. ... 8. }; Chương 12 - 55 LTHĐTKhoa CNTT GV. Nguy ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 7. TOÁN TỬ GÁN TRONG KẾ THỪA − Toán tử gán trong kế thừa được thực hiện theo nguyên tắc: trường hợp đặt biệt có thể được gán cho trường hợp tổng quát, và trường hợp tổng quát thì không thể gán cho trường hợp đặt biệt được. − Qui tắc trên áp dụng cho tất cả các ngôn ngữ hỗ trợ lập trình hướng đối tượng như C++, Java, VB.NET, C#, Python,... Chương 12 - 56 LTHĐTKhoa CNTT GV. Nguy ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 7. TOÁN TỬ GÁN TRONG KẾ THỪA − Áp dụng qui tắc trên cho ngôn ngữ lập trình hướng đối tượng C++ ta có thể nói như sau: một đối tượng thuộc lớp dẫn xuất có thể được gán cho một đối tượng thuộc lớp cơ sở. Điều ngược lại là sai, nghĩa là một đối tượng thuộc lớp cơ sở không được quyền gán cho một đối tượng thuộc lớp dẫn xuất. Chương 12 - 57 LTHĐTKhoa CNTT GV. Nguy ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 7. TOÁN TỬ GÁN TRONG KẾ THỪA − Ví dụ dẫn nhập 01: Hãy cho biết trong chương trình dưới đây câu lệnh nào đúng câu lệnh nào sai: 11.class A 12.{ 13. ... 14.}; 15.class B:public A 16.{ 17. ... 18.}; 19.void main() 20.{ 21. A a; 22. B b; 23. a = b; 24. b = a; 25.} Chương 12 - 58 LTHĐTKhoa CNTT GV. Nguy ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 7. TOÁN TỬ GÁN TRONG KẾ THỪA − Mở rộng qui tắc trên cho con trỏ đối tượng ta có thể nói như sau: một con trỏ đối tượng thuộc lớp cơ sở có thể giữ địa chỉ của một đối tượng thuộc lớp dẫn xuất. Ngược lai, một con trỏ đối tượng thuộc lớp dẫn xuất không thể giữ địa chỉ của một đối tượng thuộc lớp cơ sở. Chương 12 - 59 LTHĐTKhoa CNTT GV. Nguy ễn Sơn Hoàng Quốc ThS. Nguyễn Tấn Trần Minh Khang 7. TOÁN TỬ GÁN TRONG KẾ THỪA − Hãy cho biết đoạn chương trình dưới đây câu lệnh nào đúng, câu lệnh nào sai: 11.class A 12.{ 13.}; 14.class B:public A 15.{ 16.}; 17.void main() 18.{ 19. A *a; 20. B *b; 21. A x; 22. B y; 23. a = &x; 24. b = &y; 25. a = &y; 26. b = &x; 27.}
File đính kèm:
- Giáo trình Lập trình hướng đối tượng - Chương 12 Kế thừa.pdf