Danh mục

Ngôn ngữ lập trình C - Chương 7

Số trang: 0      Loại file: pdf      Dung lượng: 311.76 KB      Lượt xem: 14      Lượt tải: 0    
Hoai.2512

Phí lưu trữ: miễn phí Tải xuống file đầy đủ (0 trang) 0
Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Tài liệu tham khảo bài giảng về Ngôn ngữ lập trình C++ gồm 7 chương - Chương 7 Thừa kế và đa hình
Nội dung trích xuất từ tài liệu:
Ngôn ngữ lập trình C - Chương 7 Ch−¬ng 7 Ch Thõa kÕvμ ®a h×nh7.1 Tæng quan vÒ thõa kÕ vµ ®a h×nh 7.1.1 Thừa kế trong lập trình HĐT – Khái niệm • Thừa kế là một trong ba nguyên tắc cơ bản của LTHĐT. • Lớp cơ sở và lớp dẫn xuất: – Lớp được thừa kế lớp cơ sở, lớp thừa kế lớp dẫn xuất. – Một lớp có thể là lớp cơ sở cho nhiều lớp dẫn xuất. – Một lớp dẫn xuất có thể là lớp cơ sở cho một lớp khác. • Sự thừa kế trong lớp dẫn xuất: – Lớp dẫn xuất sẽ thừa kế các thành phần (dữ liệu, hàm) của lớp cơ sở, đồng thời thêm vào các thành phần mới. • Lớp dẫn xuất sẽ “làm tốt hơn” (hoặc “làm lại”) những công việc mà lớp cơ sở “làm chưa tốt” (hoặc không còn “phù hợp” với lớp dẫn xuất). – Lớp cơ sở thường được xử lý giống như một thành phần có kiểu là đối tượng ( khái niệm kết tập). 2 Bài giảng C++. 19/11/2008 V.S.Nam. B/m KTHT, khoa CNTT, ĐHXD7.1 Tæng quan vÒ thõa kÕ vµ ®a h×nh 7.1.1 Thừa kế trong lập trình HĐT – Đặc điểm • Thừa kế cho phép tạo kiểu mới trên cơ sở lớp đang tồn tại. – Mở rộng chúng với những thuộc tính mới tạo đối tượng giống một phần đối tượng cũ. • Thừa kế cho phép nâng cao khả năng sử dụng lại chương trình. – Không phải biên dịch lại các thành phần chương trình đã có trong các lớp cơ sở. Không cần phải có chương trình nguồn tương ứng: người lập trình được phép thừa kế các lớp định nghĩa trước đó. Người dùng hoàn toàn không thể và không cần phải biết rõ phần chương trình nguồn tương ứng. • Trình dịch có thể cung cấp một thư viện lớp, đối tượng làm cơ sở để xây dựng giao diện ứng dụng. 3 Bài giảng C++. 19/11/2008 V.S.Nam. B/m KTHT, khoa CNTT, ĐHXD7.1 Tæng quan vÒ thõa kÕ vµ ®a h×nh 7.1.2 Đa hình trong lập trình hướng đối tượng – Khái niệm • Đa hình là một trong ba nguyên tắc cơ bản của LTHĐT. – Tính đa hình được thiết lập trên cơ sở thừa kế. • Đa hình: đối tượng có thể có biểu hiện khác nhau tuỳ thuộc tình huống cụ thể. – Tính đa hình có thể thể hiện trên một hành vi (phương thức của lớp) hoặc trên toàn bộ đối tượng. – Tính đa hình cung cấp khả năng xử lý các lớp liên hệ nhau của các đối tượng theo một cách tổng quát. – Định nghĩa lại hàm thành phần • Định nghĩa lại HTP của lớp cơ sở trong lớp dẫn xuất là cơ sở cho việc thiết đặt tính đa hình. • Phân biệt định nghĩa lại và định nghĩa chồng (xem chương 4 & 6) 4 Bài giảng C++. 19/11/2008 V.S.Nam. B/m KTHT, khoa CNTT, ĐHXD7.2 Thõa kÕ 7.2.1 Thừa kế lớp – Cú pháp định nghĩa thừa kế class Lop_TK : access Lop_CS { //Khai báo và định nghĩa các thành phần mới [dữ liệu thành phần mới] [hàm thành phần mới] }; – Chú ý: • access: thuộc tính thừa kế – Là một trong ba thuộc tính: public, private, protected. • Lop_CS : lớp cơ sở (là lớp có trước). • Lop_TK : lớp thừa kế trực tiếp - lớp dẫn xuất (là lớp được định nghĩa trên cơ sở của lớp B). 5 Bài giảng C++. 19/11/2008 V.S.Nam. B/m KTHT, khoa CNTT, ĐHXD7.2 Thõa kÕ 7.2.1 Thừa kế lớp – Thành phần của lớp dẫn xuất • DLTP : lớp dẫn xuất thừa kế tất cả DLTP của lớp cơ sở. • HTP : lớp dẫn xuất thừa kế tất cả HTP của lớp cơ sở trừ hàm tạo, hàm hủy, hàm bạn và hàm phép toán gán. – Truy nhập thành phần • Các thành phần private trong lớp cơ sở không thể truy nhập được từ các lớp dẫn xuất (thành phần, hàm bạn và đối tượng). • HTP của lớp dẫn xuất được phép truy nhập đến các thành phần protected và public của lớp cơ sở. Phạm vi lớp chỉ mở rộng cho hàm bạn, lớp bạn mà không được mở rộng đến các lớp thừa kế. 6 Bài giảng C++. 19/11/2008 V.S.Nam. B/m KTHT, khoa CNTT, ĐHXD7.2 Thõa kÕ 7.2.1 Thừa kế lớp – Thuộc tính thừa kế • Dẫn xuất public: không thay đổi thuộc tính của các thành phần thừa kế từ lớp cơ sở. • Dẫn xuất protected: – Thành phần public, protected trong lớp cơ sở thành phần protected trong lớp dẫn xuất. – Thành phần priv ...

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