
Bài giảng Lập trình hướng đối tượng: Chương 4 - ThS. Bùi Trọng Hiếu
Thông tin tài liệu:
Nội dung trích xuất từ tài liệu:
Bài giảng Lập trình hướng đối tượng: Chương 4 - ThS. Bùi Trọng Hiếu Chương 4 ĐA HÌNHLập trình hướng đối tượng – Đa hình 1 Nội dung chính Các đặc điểm quan trọng của LTHĐT Giới thiệu Các ví dụ Phương thức ảo Đa hình Destructor ảo Lớp cơ sở trừu tượngLập trình hướng đối tượng – Đa hình 2 Tài liệu đọcLập trình hướng đối tượng – Đa hình 3Lập trình hướng đối tượng – Đa hình 4Lập trình hướng đối tượng – Đa hình 5 Ví dụ 1class Base class Derv1 : public Base{ { public: public: void show( ) void show( ) { { cout Ví dụ 1 (tt) class Derv2 : public Base void main( ) { { public: Derv1 d1; void show( ) Derv2 d2; { Base *bp; cout Ví dụ 2class Teacher{ string name; int numOfStudents; public: Teacher(const string & new_name,int nos) { name=new_name; numOfStudents=nos; } void print() const;};Lập trình hướng đối tượng – Đa hình 8 Ví dụ 2 (tt)void Teacher::print() const{ cout Ví dụ 2 (tt)int main(){ Teacher t1(Teacher 1,50); Principal p1(Principal 1,40,School); Teacher *ptr; char c; cout > c; if (c==t) ptr=&t1; else ptr=&p1; ptr->print(); // which print? return 0;}Lập trình hướng đối tượng – Đa hình 10 Ví dụ 3Lập trình hướng đối tượng – Đa hình 11 Ví dụ 3 (tt)Lập trình hướng đối tượng – Đa hình 12 Ví dụ 3 (tt)Lập trình hướng đối tượng – Đa hình 13 Ví dụ 3 (tt)Lập trình hướng đối tượng – Đa hình 14 Ràng buộc/Liên kết Ràng buộc/Liên kết Sự xác định phương thức nào trong một phân cấp lớp được gọi với một đối tượng cụ thể Ràng buộc tĩnh/sớm Chương trình dịch có thể xác định được phương thức nào được gọi trong một phân cấp lớp với một đối tượng cụ thể Ràng buộc động/trễ Sự xác định phương thức nào trong một phân cấp lớp được sử dụng với một đối tượng cụ thể xảy ra trong thời điểm thực thi chương trìnhLập trình hướng đối tượng – Đa hình 15 Giải thích kết quả của các ví dụ Ví dụ 1 pb là con trỏ trỏ đến đối tượng thuộc lớp cơ sở Base (Base *pb) Ví dụ 2 ptr là con trỏ trỏ đến đối tượng thuộc lớp cơ sở Teacher (Teacher *ptr) Ví dụ 3 ani là con trỏ trỏ đến đối tượng thuộc lớp cơ sở Animal (Animal *ani)Lập trình hướng đối tượng – Đa hình 16 Giải thích kết quả của các ví dụ (tt) Ví dụ 1 pb=&d1; pb=&d2; pb vẫn là trỏ đến đối tượng thuộc lớp Base (không quan tâm đến nội dung) Ví dụ 2 Tương tự ptr vẫn là trỏ đến đối tượng thuộc lớp Teacher Ví dụ 3 Tương tự ani vẫn là trỏ đến đối tượng thuộc lớp Animal Lý do Ràng buộc tĩnh/sớmLập trình hướng đối tượng – Đa hình 17 Giải pháp: Ràng buộc động Chương trình dịch không thể xác định được sự ràng buộc của đối tượng và phương thức Ràng buộc này chỉ được xác định một cách động tại thời điểm thực thi chương trình Để xác định một phương thức bị ràng buộc động, ở khai báo phương thức của lớp cơ sở phải dùng từ khóa virtual Khi một phương thức được định nghĩa ảo, tất cả các phương thức phải nạp chồng từ điểm này xuống phân cấp lớp cho dù nó có được khai báo là tường minh hay khôngLập trình hướng đối tượng – Đa hình 18 Các kết quả mới Ví dụ 1 virtual void show( ); Kết quả: Derv 1 Derv 2 Ví dụ 2 virtual void print() const; Kết quả: … Name of School: School Ví dụ 3 virtual void Speak() Kết quả: My name is Tony, go go ! My name is fluffy, meoo !Lập trình hướng đối tượng – Đa hình ...
Tìm kiếm theo từ khóa liên quan:
Lập trình hướng đối tượng Bài giảng Lập trình hướng đối tượng Ràng buộc tĩnh Tính đa hình Mô hình hướng đối tượng Ràng buộc độngTài liệu có liên quan:
-
Giáo trình Lập trình hướng đối tượng: Phần 2
154 trang 313 0 0 -
101 trang 211 1 0
-
14 trang 140 0 0
-
Giáo trình lập trình hướng đối tượng - Lê Thị Mỹ Hạnh ĐH Đà Nẵng
165 trang 128 0 0 -
48 trang 117 0 0
-
Giáo trình Lập trình Windows 1 - Trường CĐN Đà Lạt
117 trang 103 0 0 -
Giáo trình Phân tích, thiết kế hướng đối tượng với UML: Phần 1 - Trường ĐH Công nghiệp Quảng Ninh
111 trang 102 0 0 -
265 trang 92 0 0
-
Giáo trình Lập trình hướng đối tượng với Java: Phần 2 - Trần Thị Minh Châu, Nguyễn Việt Hà
141 trang 86 0 0 -
33 trang 74 0 0
-
Bài giảng môn Tin học: Chương 3 - ĐH Bách khoa TP.HCM
11 trang 71 0 0 -
Ngôn ngữ lập trình C# 2005 - Tập 3: Lập trình hướng đối tượng (Phần 1)
196 trang 56 0 0 -
Đề cương môn học Lập trình Java
28 trang 52 0 0 -
Cấu trúc dữ liệu và Ngôn ngữ lập trình C
261 trang 49 0 0 -
Giáo trình Lập trình hướng đối tượng với Java: Phần 1 - Trần Thị Minh Châu, Nguyễn Việt Hà
150 trang 45 0 0 -
Bài giảng Lập trình hướng đối tượng (dùng JAVA): Chương 1 - Trần Minh Thái
40 trang 45 0 0 -
Tự học lập trình hướng đối tượng và lập trình cơ sở dữ liệu C part 1
40 trang 43 0 0 -
CHƯƠNG 14: CÁC CẤU TRÚC DỮ LIỆU ĐA CHIỀU
22 trang 41 0 0 -
Bài giảng Lập trình Java cơ bản: Chương 3 - GV. Võ Hoàng Phương Dung
55 trang 38 0 0 -
Đồ án môn học: Nghiên cứu về AOP
66 trang 37 0 0