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 đủ
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:
bai_giang_lap_trinh_huong_doi_tuong_chuong_13_da_xa_phuong_t.pdf

