intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG - Chương 7

Chia sẻ: Đặng Duy Nhật | Ngày: | Loại File: PDF | Số trang:8

112
lượt xem
34
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Tham khảo tài liệu 'lập trình hướng đối tượng - chương 7', công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả

Chủ đề:
Lưu

Nội dung Text: LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG - Chương 7

  1. MỤC TIÊU LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG • Sử dụng phương thức tự thực hiện trong các lớp dẫn xuất. Chương 7: • Xây dựng các lớp mới thừa kế từ lớp đã có • Lớp có các thành viên là lớp khác THỪA KẾ Giáo viên: Võ Hồng Bảo Châu Khoa CNTT trường ĐH Lạc Hồng OOP-CHƯƠNG 7-THỪA KẾ 2 NỘI DUNG CHI TIẾT KHÁI NiỆM TÍNH THỪA KẾ • KHÁI NIỆM TÍNH THỪA KẾ • Tạo ra lớp mới từ lớp đã có • LOẠI LỚP THỪA KẾ • Sử dụng lại những kết quả đã có – THỪA KẾ ĐƠN • Tạo ra lớp thừa kế còn được gọi: – THỪA KẾ BỘI – Mở rộng (extend) lớp đã có, • CÁC KIỂU THUỘC TÍNH KẾ THỪA – Hoặc đặc tả lại (specification) • PHƯƠNG THỨC THIẾT LẬP VÀ HỦY BỎ • Lớp mới được tạo ra từ lớp đã có gọi là lớp thừa kế (inheritance class) hay lớp dẫn xuất (derived class) • Lớp để tạo ra lớp mới gọi là lớp cơ sở (based class) hay lớp cha (super class) OOP-CHƯƠNG 7-THỪA KẾ OOP-CHƯƠNG 7-THỪA KẾ 3 4 1
  2. LOẠI LỚP THỪA KẾ Để được cái tương đương • Thừa kế đơn (single • Thừa kế bội (multiple class PERSON class STUDENT inheritance): Tạo ra lớp dẫn inheritance): Lớp dẫn xuất LỚP CƠ ID_Num ID_Num xuất chỉ từ một lớp cơ sở được tạo ra từ hơn 1 lớp cơ sở SỞ (LỚP Name Name CHA) YearOfBirth YearOfBirth thừa A Address Address kế A getID_Num() getID_Num() A B setID_Num(newID) setID_Num(newID) B ...... ...... quan hệ B RollNum “là 1” tính Score class STUDENT chất C C getScore() LỚP RollNum riêng setSore(newScore) DẪN A Score ...... XuẤT getScore() (LỚP setSore(newScore) CON) ...... B C Con = Cha + một tí OOP-CHƯƠNG 7-THỪA KẾ OOP-CHƯƠNG 7-THỪA KẾ 5 6 THỪA KẾ ĐƠN VÍ DỤ class Lớp cơ sở{ LỚP point //... Dữ liệu: toại độ (x, y) point Hành vi: }; Xuất tọa độ ra màn hình class lớp dẫn xuất:kiểu kế thừa Lớp cơ sở{ //... } LỚP coloredpoint coloredpoint Dữ liệu: toại độ (x, y),màu Hành vi: Xuất tọa độ và màu ra màn hình OOP-CHƯƠNG 7-THỪA KẾ OOP-CHƯƠNG 7-THỪA KẾ 7 8 2
  3. class point{ Ví dụ LƯU Ý Kiểu thừa kế float x,y; public: Lớp dẫn xuất Lớp cơ sở point(float ox,float oy){x=ox;y=oy;} (lớp con) (lớp cha) point(point &p){x=p.x;y=p.y;} • Lớp dẫn xuất không thể truy cập đến phương thức thiết lập và void display(){ phương thức hủy bỏ của lớp cơ sở cout
  4. CÁC KIỂU THUỘC TÍNH KẾ THỪA PHƯƠNG THỨC THIẾT LẬP • PRIVATE • Phương thức thiết lập của lớp cơ sở thực hiện trước phương thức Kiểu thuộc thiết lập của lớp dẫn xuất • PUBLIC tính trong • Đối với thừa kế bội, phương thức thiết lập của lớp cơ sở xuất hiện lớp dẫn trước được thực hiện trước xuất Kiểu kế thừa Kiểu truy cập Public Private các TP ở lớp cơ sở Public Public private Private x x protected protected private OOP-CHƯƠNG 7-THỪA KẾ OOP-CHƯƠNG 7-THỪA KẾ 13 14 PHƯƠNG THỨC HỦY BỎ Hàm xây dựng và hàm hủy • Phương thức hủy bỏ của lớp cơ sở thực hiện sau phương thức hủy • Trong thừa kế, khi khởi tạo đối tượng: bỏ của lớp dẫn xuất. – Hàm xây dựng của lớp cha sẽ được gọi trước • Đối với thừa kế bội, phương thức hủy bỏ của lớp xuất hiện trước – Sau đó mới là hàm xây dựng của lớp con. được thực hiện sau. • Trong thừa kế, khi hủy bỏ đối tượng: – Hàm hủy của lớp con sẽ được gọi trước – Sau đó mới là hàm hủy của lớp cha. A B C OOP-CHƯƠNG 7-THỪA KẾ OOP-CHƯƠNG 7-THỪA KẾ 15 16 4
  5. Ví dụ class ONE{ public: class THREE:TWO_A,TWO_B{ ONE(){cout
  6. Xây dựng lớp dẫn xuất Phương thức thiết lập class Person:Date{ Person(char *n,int bd,int bm, int by):Date( bd,bm,by ){ char* name; strcpy(name,n); int bd,bm,by; d = bd; public: m = bm; Person(char*,int,int,int); Chỉ sử dụng phương y = by; //... thức này } }; OOP-CHƯƠNG 7-THỪA KẾ OOP-CHƯƠNG 7-THỪA KẾ 21 22 Gợi ý về phân tích thừa kế Thừa kế - Bài mẫu Phân tích phân cấp thừa kế cho các lớp: (1) Liệt kê đặc điểm của các đối tượng cần quan tâm. • Hàng điện máy (2) Tìm tập giao của các tính • Hàng sành sứ < mã hàng, tên hàng, nhà sản xuất, giá, loại chất giữa các lớp, tách tập nguyên liệu> giao này để xây dựng lớp cha. • Hàng thực phẩm (3) Đặt 1 tên gọi có ý nghĩa cho lớp cha. (4) Phần còn lại sau khi tách tập giao là các lớp con. OOP-CHƯƠNG 7-THỪA KẾ OOP-CHƯƠNG 7-THỪA KẾ 23 24 6
  7. Bài giải BÀI TẬP TẠI LỚP Phân tích phân cấp thừa kế cho các đối tượng trong một học viện: • HangĐienMay < maH,tenH,nsx,gia, tgbh,đa,cs > • Nhân viên quản lý tạo, chuyên môn, l ương cb, phụ cấp chức vụ> • HangThucPham < maH,tenH,nsx,gia, ngsx,nhhd > • Nhân viên nghiên cứu HangHoa maH • Nhân viên phục vụ tenH nsx gia HangDienMay HangSanhSu HangThucPham tgbh ngsx lnl đa nghhd cx OOP-CHƯƠNG 7-THỪA KẾ OOP-CHƯƠNG 7-THỪA KẾ 25 26 Yêu cầu TÓM TẮT • Sử dụng phương thực tự thực hiện trong các lớp dẫn xuất. • Thừa kế nâng cao khả năng sử dụng lại các đoạn mã chương trình. • Xây dựng các lớp mới thừa kế từ lớp đã có • Trong thừa kế đơn, một lớp chỉ có thể có một lớp cơ sở • Lớp có các thành viên là lớp khác (lớp cha). • Trong thừa kế bội, một lớp có thể là lớp dẫn xuất (lớp con) của nhiều lớp. • Lớp con không thể truy xuất đến các thành phần private của lớp cha nhưng có thể truy cập đến thành phần protected và public của lớp cha. • Có 2 hình thức kế thừa: private và public. OOP-CHƯƠNG 7-THỪA KẾ OOP-CHƯƠNG 7-THỪA KẾ 27 28 7
  8. THANK YOU OOP-CHƯƠNG 7-THỪA KẾ 29 8
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2