Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 74 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
74
Dung lượng
362,5 KB
Nội dung
Chương Sự kế thừa Nội dung Mở đầu Kế thừa đơn Phạm vi truy xuất Phương thức thiết lập huỷ bỏ Con trỏ kế thừa 4.1 Mở đầu - Sự kế thừa đặc điểm ngôn ngữ dùng để biểu diễn mối quan hệ đặc biệt lớp Các lớp trừu tượng hóa tổ chức thành sơ đồ phân cấp lớp - Kế thừa chế trừu tượng hóa Thủ tục hàm chế trừu tượng hóa cho giải thuật, record struct trừu tượng hóa cho liệu Khái niệm lớp C++, kết hợp liệu thủ tục để kiểu liệu trừu tượng với giao diện độc lập với cài đặt cho người sử dụng cảm giác thoải mái kiểu liệu có sẵn - Sự kế thừa mức cao trừu tượng hóa cung cấp chế gom chung lớp có liên quan với thành mức khái quát hóa đặc trưng cho toàn lớp nói Các lớp với đặc điểm tương tự tổ chức thành sơ đồ phân cấp kế thừa Lớp trừu tượng hóa toàn lớp ỏ bên Mở đầu Quan hệ 1: Kế thừa sử dụng thông dụng để biểu diễn quan hệ • Một sinh viên người • Một hình tròn hình ellipse • Một tam giác đa giác Kế thừa tạo khả xây dựng lớp từ lớp có, hàm thành phần thừa hưởng từ lớp cha Trong C++, kế thừa định nghĩa tương thích, nhờ ta có chế chuyển kiểu tự động Kế thừa vừa có khả tạo chế khái quát hoá vừa có khả chuyên biệt hoá Kế thừa cho phép tổ chức lớp chia sẻ mã chương trình chung nhờ dễ dàng sửa chữa, nâng cấp hệ thống Mở đầu Kế thừa thường dùng theo hai cách: • Để phản ánh mối quan hệ lớp Là công cụ để tổ chức phân cấp lớp dựa vào chuyên biệt hóa, vài hàm thành phần lớp phiên hoàn thiện đặc biệt hoá phiên lớp cha Trong C++ mối quan hệ thường cài đặt sử dụng: Kế thừa public Hàm thành phần phương thức ảo • Để phản ánh chia sẻ mã chương trình lớp quan hệ mặt ngữ nghĩa có tổ chức liệu mã chương trình tương tự Trong C++, chế chia sẻ mã thường cài đặt dùng: Kế thừa private Hàm thành phần không phương thức ảo 4.2 Kế thừa đơn Kế thừa thực để thể mối quan hệ 'là một' Xét hai khái niệm người sinh viên với mối quan hệ tự nhiên: 'sinh viên' 'người' Trong C++, ta biểu diễn khái niệm trên, sinh viên người có thêm số thông tin số thao tác (riêng biệt sinh viên) Ta tổ chức lớp sinh viên kế thừa từ lớp người Lớp người gọi lớp cha (superclass) hay lớp sở (base class) Lớp sinh viên gọi lớp (subclass) hay lớp dẫn xuất (derived class) Kế thừa đơn class Nguoi { friend class SinhVien; char *HoTen; int NamSinh; public: Nguoi(char *ht, int ns):NamSinh(ns) {HoTen = strdup(ht);} ~Nguoi() {delete [] HoTen;} void An() const { cout [...]... dụng lại mã chương trình Riêng phương thức thiết lập khơng được kế thừa 11 Tự động kế thừa các đặc tính của lớp cha Nguoi p1("Le Van Nhan",1980); SinhVien s1("Vo Vien Sinh", "200002 541 ",19 84) ; p1.An(); cout ... thuộc lớp hay khơng? Điều hồn tồn lớp định thuộc tính kế thừa Có hai thuộc tính kế thừa kế thừa public kế thừa private Kế thừa public: Lớp kế thừa public từ lớp cha thành phần protected lớp cha... tác lớp cha kế thừa xuống lớp Vì ta sử dụng thao tác lớp cha cho đối tượng thuộc lớp Ta qui định kế thừa public từ khố public theo sau dấu hai chấm thiết lập quan hệ kế thừa 38 Kế thừa public... dung Mở đầu Kế thừa đơn Phạm vi truy xuất Phương thức thiết lập huỷ bỏ Con trỏ kế thừa 4. 1 Mở đầu - Sự kế thừa đặc điểm ngơn ngữ dùng để biểu diễn mối quan hệ đặc biệt lớp Các lớp trừu tượng hóa