tailieunhanh - Bài giảng Lập trình nâng cao: Các tính chất của lớp (đa hình – hàm ảo) - Lê Nguyên Khôi

Bài giảng Lập trình nâng cao: Các tính chất của lớp (đa hình – hàm ảo) cung cấp cho người học các kiến thức cơ bản về hàm ảo (Liên kết muộn/động, cài đặt hàm ảo, sử dụng hàm ảo, lớp trừu tượng & Hàm ảo thuần), con trỏ & hàm ảo. nội dung chi tiết. | Lập Trình Nâng Cao Các Tính Chất Của Lớp (Đa Hình – Hàm Ảo) 1 2 Nội Dung Cơ bản về hàm ảo Liên kết muộn/động Cài đặt hàm ảo Sử dụng hàm ảo Lớp trừu tượng & Hàm ảo thuần Con trỏ & Hàm ảo Tương thích kiểu Chuyển kiểu: Tăng cấp & Hạ Cấp Lê Nguyên Khôi 3 Cơ Bản Về Hàm Ảo Đa hình: Hàm ảo cung cấp khả năng Liên kết nhiều định nghĩa cho một hàm Không phải nạp chồng hay ghi đè hàm Nguyên tắc cơ bản của LTHĐT Hàm ảo: Bản chất tồn tại nhưng thực tế thì không Có thể “sử dụng” trước khi “định nghĩa” Lê Nguyên Khôi 4 Lớp Hinh Lớp cha của các lớp hình: Chữ nhật, Tròn, Tam giác Mỗi hình miêu tả đối tượng của lớp khác nhau Chữ nhật: tâm, dài, rộng Tròn: tâm, bán kính Tất cả dẫn xuất từ lớp cha hinh Hàm cần thiết: ve() Cài đặt khác nhau cho mỗi hình Lê Nguyên Khôi 5 Lớp Hinh: ve() Mỗi lớp con của Hinh cần một hàm ve() khác nhau Có thể gọi ve() của mỗi lớp ChuNhat cn; Tron tr; (); //Gọi hàm vẽ của lớp ChuNhat (); //Gọi hàm vẽ của lớp Tron Tới đây chưa có gì mới Lê Nguyên Khôi 6 Lớp Hinh: canGiuaMH() Lớp cha Hinh có hàm canGiuaMH() áp dụng cho tất cả các lớp con: dùng để di chuyển hình ra giữa màn hình: Xóa toàn bộ hình, vẽ lại Do đó Hinh::canGiuaMH() sử dụng ve() để vẽ lại hình Biên dịch! Sử dụng hàm ve() nào? Từ lớp nào? Lê Nguyên Khôi 7 Lớp Hinh: Lớp Con Mới Giả sử cần tạo một lớp con cho hình mới: Lớp TamGiac dẫn xuất từ lớp Hinh Hàm canGiuaMH() kế thừa từ lớp Hinh Sử dụng hàm ve(), khác biệt cho mỗi hình Sử dụng Hinh::ve()? -> không đúng cho lớp TamGiac Ta cần kế thừa hàm canGiuaMH() nhưng sử dụng TamGiac::ve() chứ không phải Hinh::ve() Nhưng lớp TamGiac chưa được biết khi thiết kế Hinh::canGiuaMH()! Lê Nguyên Khôi 8 Lớp Hinh: Hàm Ảo? Hàm ảo là đáp án Thông báo với trình biên dịch: Không biết hàm đó cài đặt như thế nào Đợi cho tới khi sử dụng trong chương trình Sử dụng cài đặt hàm của đối tượng của lớp Gọi là liên kết muộn hay liên kết động Hàm ảo thực hiện liên kết muộn Lê Nguyên Khôi 9 Hàm Ảo: Ví Dụ Chương trình quản lý giao dịch cho cửa hàng bán phụ tùng xe máy, | Lập Trình Nâng Cao Các Tính Chất Của Lớp (Đa Hình – Hàm Ảo) 1 2 Nội Dung Cơ bản về hàm ảo Liên kết muộn/động Cài đặt hàm ảo Sử dụng hàm ảo Lớp trừu tượng & Hàm ảo thuần Con trỏ & Hàm ảo Tương thích kiểu Chuyển kiểu: Tăng cấp & Hạ Cấp Lê Nguyên Khôi 3 Cơ Bản Về Hàm Ảo Đa hình: Hàm ảo cung cấp khả năng Liên kết nhiều định nghĩa cho một hàm Không phải nạp chồng hay ghi đè hàm Nguyên tắc cơ bản của LTHĐT Hàm ảo: Bản chất tồn tại nhưng thực tế thì không Có thể “sử dụng” trước khi “định nghĩa” Lê Nguyên Khôi 4 Lớp Hinh Lớp cha của các lớp hình: Chữ nhật, Tròn, Tam giác Mỗi hình miêu tả đối tượng của lớp khác nhau Chữ nhật: tâm, dài, rộng Tròn: tâm, bán kính Tất cả dẫn xuất từ lớp cha hinh Hàm cần thiết: ve() Cài đặt khác nhau cho mỗi hình Lê Nguyên Khôi 5 Lớp Hinh: ve() Mỗi lớp con của Hinh cần một hàm ve() khác nhau Có thể gọi ve() của mỗi lớp ChuNhat cn; Tron tr; (); //Gọi hàm vẽ của lớp ChuNhat (); //Gọi hàm vẽ của lớp Tron Tới đây chưa có gì mới Lê Nguyên Khôi 6 Lớp Hinh:

TỪ KHÓA LIÊN QUAN