
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 bá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 là 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