Bài giảng Lập trình hướng đối tượng - Chương 13: Đa xạ - Phương thức ảo - Nguyễn Sơn Hoàng Quốc

Khoa CNTT  
LTHĐT  
Chương 13  
ĐA XẠ-PHƯƠNG THỨC ẢO  
GV. Nguyễn Sơn Hoàng Quốc  
Chương 13 - 1  
ThS. Nguyễn Tấn Trần Minh Khang  
Khoa CNTT  
LTHĐT  
1. MỤC TIÊU  
− Hiểu được cơ chế hoạt động của  
phương thức ảo.  
− Ứng dụng được phương thức ảo.  
− Thi cao học đề thi hay hỏi phần này.  
− Phỏng vấn xin việc người ta cũng rất  
hay hỏi.  
GV. Nguyễn Sơn Hoàng Quốc  
Chương 13 - 2  
ThS. Nguyễn Tấn Trần Minh Khang  
Khoa CNTT  
LTHĐT  
2. VÍ DỤ DẪN NHẬP  
− Hã y thực hiện đoạn chương trì nh dưới  
đây và cho biết kết quả của việc chạy  
chương trì nh trong bốn trường hợp:  
− Trường hợp 1: XXXX là khoảng trắng,  
YYYY là khoảng trắng.  
− Trường hợp 2: XXXX là virtual,  
YYYY là khoảng trắng.  
− Trường hợp 3: XXXX là khoảng trắng,  
YYYY là virtual.  
− Trường hợp 4: XXXX là virtual,  
YYYY là virtual.  
GV. Nguyễn Sơn Hoàng Quốc  
Chương 13 - 3  
ThS. Nguyễn Tấn Trần Minh Khang  
Khoa CNTT  
LTHĐT  
2. VÍ DỤ DẪN NHẬP (tiếp)  
11.#include <iostream.h>  
12.class A  
13.{  
14. public:  
15.  
16.  
17.  
18.  
19.  
20.  
21.  
22.  
XXXX void Sketchy()  
{
cout<<"\n A‘sSketchy()“;  
Sketchy(-1);  
}
YYYY void Sketchy(int num)  
{
cout<<"\n A's Sketchy  
(int)”<< num;  
23.  
}
24.};  
GV. Nguyễn Sơn Hoàng Quốc  
ThS. Nguyễn Tấn Trần Minh Khang  
Chương 13 - 4  
Khoa CNTT  
LTHĐT  
2. VÍ DỤ DẪN NHẬP (tiếp)  
11.class B:public A  
12.{  
13. public:  
14.  
15.  
16.  
17.  
18.  
19.  
20.  
21.  
void Sketchy()  
{
cout<<"\nB‘s Sketchy()“;  
Sketchy(-2);  
}
void Sketchy(int num)  
{
cout<<"\n B's Sketchy  
(int)”<< num;  
22.  
}
23.};  
GV. Nguyễn Sơn Hoàng Quốc  
ThS. Nguyễn Tấn Trần Minh Khang  
Chương 13 - 5  
Khoa CNTT  
LTHĐT  
2. VÍ DỤ DẪN NHẬP (tiếp)  
1. class C:public B  
2. {  
3.  
4.  
5.  
6.  
public:  
void Sketchy(int num)  
{
cout<<"\nC's Sketchy  
(int)“<<num;  
7.  
}
8. };  
9. void Curious(A* wacky)  
10.{  
11. wacky->Sketchy();  
12. ((C*)wacky)->Sketchy(123);  
13.}  
GV. Nguyễn Sơn Hoàng Quốc  
Chương 13 - 6  
ThS. Nguyễn Tấn Trần Minh Khang  
Khoa CNTT  
LTHĐT  
2. VÍ DỤ DẪN NHẬP (tiếp)  
1. void main()  
2. {  
3.  
A* inky = new B;  
inky->Sketchy();  
inky->Sketchy(23);  
Curious(inky);  
4.  
5.  
6.  
7.  
B* pinky = new C;  
pinky->Sketchy();  
pinky->Sketchy(46);  
Curious(pinky);  
8.  
9.  
10.  
11.}  
GV. Nguyễn Sơn Hoàng Quốc  
ThS. Nguyễn Tấn Trần Minh Khang  
Chương 13 - 7  
Khoa CNTT  
LTHĐT  
2. VÍ DỤ DẪN NHẬP (tiếp)  
A
Sketchy()  
Sketchy(int)  
public  
B
Sketchy()  
Sketchy(int)  
public  
C
Sketchy()  
Sketchy(int)  
GV. Nguyễn Sơn Hoàng Quốc  
Chương 13 - 8  
ThS. Nguyễn Tấn Trần Minh Khang  
Khoa CNTT  
LTHĐT  
2. VÍ DỤ DẪN NHẬP (tiếp)  
− Kết quả trường hợp 01  
GV. Nguyễn Sơn Hoàng Quốc  
Chương 13 - 9  
ThS. Nguyễn Tấn Trần Minh Khang  
Khoa CNTT  
LTHĐT  
2. VÍ DỤ DẪN NHẬP (tiếp)  
− Kết quả trường hợp 02  
GV. Nguyễn Sơn Hoàng Quốc  
Chương 13 - 10  
ThS. Nguyễn Tấn Trần Minh Khang  
Khoa CNTT  
LTHĐT  
2. VÍ DỤ DẪN NHẬP (tiếp)  
− Kết quả trường hợp 03  
GV. Nguyễn Sơn Hoàng Quốc  
Chương 13 - 11  
ThS. Nguyễn Tấn Trần Minh Khang  
Khoa CNTT  
LTHĐT  
2. VÍ DỤ DẪN NHẬP (tiếp)  
− Kết quả trường hợp 04  
GV. Nguyễn Sơn Hoàng Quốc  
Chương 13 - 12  
ThS. Nguyễn Tấn Trần Minh Khang  
Khoa CNTT  
LTHĐT  
3. KHÁ I NIỆM  
− Khá i niệm: Đa xạ là cơ chế tầm vực  
động, cho phé p "xá c định" đúng hành  
vi (phương thức) của đối tượng khi  
yêu cầu thực hiện.  
− Việc "xá c định" được thực hiện theo  
nguyên tắc tự nhiên: đối tượng thuộc  
lớp nào sẽ gọi thực hiện phương thức  
của lớp đối tượng đó.  
− Tầm vực động là cơ chế gọi thực hiện  
phương thức thô ng qua con trỏ đối  
tượng.  
GV. Nguyễn Sơn Hoàng Quốc  
Chương 13 - 13  
ThS. Nguyễn Tấn Trần Minh Khang  
Khoa CNTT  
LTHĐT  
4. CÚ PHÁP ĐA XẠ  
11.class CCoSo  
12.{  
13. private:  
14.  
...  
15. protected:  
16.  
...  
17. public:  
18.  
...  
19.  
virtual KDL <TenPhuongThuc>  
(<ThamSo>);  
20.};  
GV. Nguyễn Sơn Hoàng Quốc  
ThS. Nguyễn Tấn Trần Minh Khang  
Chương 13 - 14  
Khoa CNTT  
LTHĐT  
4. CÚ PHÁP ĐA XẠ  
11.class CDanXuat:<Từ Khóa Dẫn Xuất>  
CCoSo  
12.{  
13. private:  
14.  
...  
15. protected:  
16.  
...  
17. public:  
18.  
...  
19.  
KDL <TenPhuongThuc>  
(<ThamSo>);  
20.};  
GV. Nguyễn Sơn Hoàng Quốc  
ThS. Nguyễn Tấn Trần Minh Khang  
Chương 13 - 15  
Khoa CNTT  
11.class CCoSo  
12.{  
LTHĐT  
13. private:  
14.  
...  
15. protected:  
16.  
...  
17. public:  
18.  
...  
19.  
virtual KDL <TenPhuongThuc>  
(<ThamSo>);  
20.};  
21.class CDanXuat:<Từ Khóa Dẫn Xuất>  
CCoSo  
22.{  
23. private:  
24.  
...  
25. protected:  
26.  
...  
27. public:  
28.  
...  
29.  
KDL <TenPhuongThuc>  
(<ThamSo>);  
30.};  
GV. Nguyễn Sơn Hoàng Quốc  
ThS. Nguyễn Tấn Trần Minh Khang  
Chương 13 - 16  
Khoa CNTT  
LTHĐT  
4. CÚ PHÁP ĐA XẠ (tiếp)  
− Một phương thức được khai bá o bắt  
đầu với từ khó a virtual thì được gọi là  
phương thức ảo và phương thức này  
được gọi thực hiện theo cơ chế đa xạ  
nếu lời gọi thực hiện phương thức  
được thô ng qua một con trỏ đối  
tượng.  
− Cá c phương thức ở lớp dẫn xuất cùng  
tên và cùng danh sá ch tham số đầu  
vào thì cũng sẽ là phương thức ảo  
nếu ở lớp cơ sở phương thức cùng  
tên và cùng tham số là phương thức  
ảo.  
GV. Nguyễn Sơn Hoàng Quốc  
Chương 13 - 17  
ThS. Nguyễn Tấn Trần Minh Khang  
Khoa CNTT  
LTHĐT  
5. BÀI TOÁ N  
CHI TIẾT MÁY  
− Bài toá n: Một cá i má y có nhiều chi  
tiết. Mỗi chi tiết má y có thể là chi tiết  
đơn hoặc là chi tiết phức.  
+ Chi tiết đơn: là chi tiết khô ng chứa  
bên trong nó chi tiết khá c. Thô ng tin  
của chi tiết đơn bao gồm: mã số chi  
tiết, giá tiền.  
+ Chi tiết phức: là chi tiết chứa bên  
trong nó nhiều chi tiết thành phần, mỗi  
một chi tiết thành phần này có thể là  
chi tiết đơn hoặc là chi tiết phức.  
Thô ng tin của chi tiết phức bao gồm:  
mã số chi tiết, số lượng chi tiết thành  
phần, danh sá ch cá c chi tiết thành  
phần. Giá tiền của chi tiết phức bằng  
tổng giá tiền của cá c chi tiết thành  
phần.  
GV. Nguyễn Sơn Hoàng Quốc  
Chương 13 - 18  
ThS. Nguyễn Tấn Trần Minh Khang  
Khoa CNTT  
LTHĐT  
5. BÀI TOÁ N  
CHI TIẾT MÁY (tiếp)  
− Yêu cầu: Thiết kế cá c lớp thí ch hợp  
để thực hiện cá c yêu cầu sau:  
+ Nhập cá c chi tiết cho má y.  
+ Tì m kiếm một chi tiết má y theo mã số.  
+ Tí nh tiền cho một chi tiết má y, hoặc  
cho má y.  
+ Xuất cá c chi tiết má y.  
+ Đếm số lượng chi tiết đơn có trong cá i  
má y.  
GV. Nguyễn Sơn Hoàng Quốc  
Chương 13 - 19  
ThS. Nguyễn Tấn Trần Minh Khang  
Khoa CNTT  
LTHĐT  
6. BÀI TOÁ N  
TÍ NH TIỀN LƯƠNG  
− Bài toá n: Cô ng ty ABC là cô ng ty sản  
xuất kinh doanh thú nhồi bô ng. Cô ng  
ty có nhiều nhâ n viên làm việc trong  
ba bộ phận khá c nhau: bộ phận quản  
lý, bộ phận sản xuất, bộ phận văn  
phò ng. Việc tí nh lương cho nhâ n viên  
dựa vào cá c yếu tố sau:  
+ Đối với nhân viên văn phòng  
Lương = Lương Cơ Bản + Số ngày làm  
việc *100.000 + Trợ Cấp  
+ Đối với nhân viên sản xuất  
Lương = Lương Cơ Bản + Số Sản  
Phẩm * 2.000  
+ Đối với nhân viên quản lý  
Lương = Lương Cơ Bản* Hệ số chức vụ  
+ Thưởng.  
GV. Nguyễn Sơn Hoàng Quốc  
Chương 13 - 20  
ThS. Nguyễn Tấn Trần Minh Khang  
Tải về để xem bản đầy đủ
pdf 21 trang myanh 30900 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Lập trình hướng đối tượng - Chương 13: Đa xạ - Phương thức ảo - Nguyễn Sơn Hoàng Quốc", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_lap_trinh_huong_doi_tuong_chuong_13_da_xa_phuong_t.pdf