Giáo trình kỹ thuật lập trình hướng đối tượng bằng c++ phần 2

128 4 0
Giáo trình kỹ thuật lập trình hướng đối tượng bằng c++ phần 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Chương KỸ THUẬT KẾ THỪA 5.1 LỢI ÍCH CỦA VIỆC KẾ THỪA Sự kế thừa phần thiếu lập trình theo hướng đối tượng Nó lợi thế, cho phép ta sử dụng lại mã lệnh Một lớp sở viết biên dịch, khơng cần thiết phải biên dịch lại Tuy nhiên, việc sử dụng kế thừa đưa vào tình khác Sử dụng lại mã lệnh tiết kiệm thời gian làm tăng tính tin cậy chương trình Sự kế thừa giúp ích mơ vấn đề thiết kế tồn diện chương trình Một kết quan trọng tính sử dụng lại dé dang phân phối thư viện lớp Người lập trình sử dụng lớp tạo hay cơng ty mà khơng cần phải sửa đổi 5.2 TÍNH KẾ THỪA 5.2.1 Lớp kế thừa Một lớp xây dựng kế thừa từ lớp khác gọi !ớp kế thừa Lớp dùng để xây dựng lớp kế thừa gọi lớp sở Lớp lớp sở Điểm Hình trịn Hình 5.1 Đơn kế thừa 146 Hơn nữa, lớp sở cho nhiều lớp kế thừa khác Đến lượt mình, lớp kế thừa lại dùng làm lớp sở để xây dựng lớp kế thừa khác; ngồi kế thừa từ nhiều lớp sở (hình 5.2 5.3) Khi xây dựng lớp, người ta thường dùng mũi tên lên nhằm lớp kế thừa lớp Động vật Động vật có vú Ngua Lồi bị sát Than lan Chó Ran Hình 5.2 Kiến trúc phân tầng kế thừa số lồi động vật Cơng dân >> Cán giảng dạy Người quản lý Trưởng mơn Hình 5.3 Đa kế thừa «e Đặc trưng A se Đặc trưng B « Đặc trưng C ‘ Lớp kế thừa s « s s Đặc Đặc Đặc Đặc trưng trưng trưng trưng Các đặc trưng định nghĩa lớp „77 i t ¡cơ SỞ ;' A B C D y in ? sư ’ , Đặc trưng định nghĩa lớp kế thừa ‘ Hình 5.4 Tỉnh kế thừa đặc trưng lớp kế thừa 147 5.2.2 Cách xây dựng lớp kế thừa Giả sử ta định nghĩa lớp A, để xây dựng lớp C kế thừa từ lớp A ta viết: class C: public A { 1z 5.2.3 Kế thừa private, public thuộc tính protected Nếu muốn định nghĩa lớp C kế thừa từ hai lớp A B định nghĩa, ta viết: class C: public A, public B { he Ta thấy rằng, khai báo trên, lớp C kế thừa theo kiểu public thay public Nếu bang private kế thừa theo kiểu private Với khai báo: class C: public A, B { Mi lớp A lớp sở pub1ic lớp C, lớp B lớp sở private lớp C Ta có tinh chat sau: — Nếu kế thừa theo kiểu public thi tất thành phần pub1lic lớp sở trở thành thành phần public lớp kế thừa - — Nếu kế thừa theo kiểu pzivate tất thành phần pub1ic lớp sở trở thành thành phần private lớp kế thừa — Tuy lớp kế thừa kế thừa thành phần liệu phương thức lớp sở, phương thức lớp kế thừa không phép 148 truy cập trực tiếp đến thành phân liệu private lớp sở Để khắc phục điều này, ta thay từ khoá private lớp sở thành từ khoá protected | — Lép ké thita kế thừa phương thức lớp SỞ, trừ Các phương thức sau khơng kế thừa: hàm tạo, hàm huỷ, toán tử gan 5.3 DON KE THUA | Đơn kế thừa lớp kế thừa từ lớp khác (hình 5.1) Trong giới thực xung quanh có nhiều đối tượng thuộc lớp kế thừa từ lớp khác Ví dụ sau xây lớp Congdan, lớp có: họ tên, quê quán, số chứng minh thư phương thức thành viên, tiếp đến ta xây dựng lớp Tai khoan kế thừa lớp Congdan Vi du 5.1 Lớp tài khoản kế thừa lớp công dân #include #include #include #include Congdan class { private: ht{ 20}, qal 30); int emt; char long //ht:ho tén, qq: quê quán /f cmt: sé ching minh thu nhan dan public: Congdan () { strepy (ht,"")7 strepy(qq,"")? cmt= 0; } void ' nhap(); void hienthi(); ya class Taikhoan: public Congdan { private: 149 / stk: s6 tài khoản, sđ: số dư tài khoản, pin: mã pin long int stk,., long int sd; pin; public: Taikhoan() { 0; stk= 0; sd= 0; pin= } void rhap ()-; void hienthi(); Jie void Congdan: :nhap () { cout

Ngày đăng: 24/01/2022, 10:54

Tài liệu cùng người dùng

Tài liệu liên quan