02/05/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 1
Ngôn ngữ lập trình
Đa hình và hàm ảo
fit.hnue.edu.vn/~dungntp/NNLT
Nội dung
Đa hình
Hàm ảo
Liên kết muộn
Hàm thuần ảo
Lớp trừu tượng
Vấn đề cắt lát
02/05/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 2
Xét yêu cầu 1 bài toán như sau:
Có 100 người đang xếp hàng chờ kê khai thông
tin
Chỉ có đủ 100 tờ giấy cho họ kê khai
Không biết có bao nhiêu người sẽ kê khai là cán
bộ, giáo viên và bao nhiêu người sẽ kê khai là
sinh viên
Làm thế nào để đảm bảo đủ giấy kê khai cho 100
người theo đúng thông tin của họ?
02/05/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 3
Giải pháp
=> Chỉ khi đến lượt, người kê khai thông o
họ là SV hay là CB, GV thì mới in tờ khai
tương ứng cho họ (sử dụng con trỏ)
Giải pháp này được gọi tính đa hình trong
lập trình hướng đối tượng
Có thể hiểu đa hình là nhiều hình thức thể hiện
khác nhau cho một loại công việc
02/05/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 4
Cách làm
Để thấy rõ tính đa hình đôi khi phải sử dụng Hàm
ảo
Hàm ảo là hàm được khai báo với từ khóa virtual
Một hàm được khai báo là hàm ảo ở lớp cơ sở thì
nó cũng là hàm ảo ở lớp dẫn xuất cho dù ở lớp
dẫn xuất nó có được khai báo bằng từ khóa virtual
hoặc không
02/05/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 5