Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 42 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
42
Dung lượng
584,66 KB
Nội dung
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC 1 HOCLAPTRINHWEB.COM TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC 2 HOCLAPTRINHWEB.COM Bài 5: Tính thừakếvàĐahình • Tính thừakế (Inheritance) • Lớp trừu tượng (Abstract) • Lớp niêm phong (Sealed) • Tính đahình của lớp (Polymorphism) - 8 tiết - TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC 3 HOCLAPTRINHWEB.COM Tính thừakế (Inheritance) • Khái niệm • Xây dựng lớp kếthừa TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC 4 HOCLAPTRINHWEB.COM Khái niệm • Tính thừakế là một khái niệm nềntảng cho phép tái sử dụng mã lệnh đang tồn tại và điều này giúp tiết kiệm được thời gian trong việc lậptrình • Các class có thể thừakế từ class khác. Class mới được gọi là class được dẫn xuất (hay còn gọi là class con) sẽ được quyền truy xuất đến tất cả các thành viên dữ liệu và các phương thức không được biểu thị private của class cơ sở (hay còn gọi là class cha) TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC 5 HOCLAPTRINHWEB.COM Xây dựng lớp kếthừa • Cú pháp: Tên_class_con : Tên_class_cơ_sở • Ví dụ 1: Xét class cơ sở với khai báo như sau: TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC 6 HOCLAPTRINHWEB.COM Xây dựng lớp kếthừa • Ví dụ 1: Xét class được dẫn xuất từ class cơ sở với khai báo như sau: TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC 7 HOCLAPTRINHWEB.COM Xây dựng lớp kếthừa • Ví dụ 1: Kết quả xuất ra màn hình khi thực thi ví dụ trên: TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC 8 HOCLAPTRINHWEB.COM Xây dựng lớp kếthừa • Ví dụ 2: Xét class cơ sở với khai báo như sau: TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC 9 HOCLAPTRINHWEB.COM Xây dựng lớp kếthừa • Ví dụ 2: Xét hai class được dẫn xuất từ class cơ sở với khai báo như sau: TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC 10 HOCLAPTRINHWEB.COM Xây dựng lớp kếthừa • Ví dụ 2: Đoạn lệnh khai báo và khởi tạo đối tượng như sau: [...]...TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Xây dựng lớp kếthừa • Ví dụ 2: Kết quả xuất ra màn hình khi thực thi đoạn lệnh trên: HOCLAPTRINHWEB.COM 11 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Lớp trừu tượng (Abstract) • • Khái niệm Xây dựng lớp trừu tượng HOCLAPTRINHWEB.COM 12 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Khái niệm • • • • class trừu tượng thực... KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Xây dựng lớp niêm phong • Ví dụ: Kết quả xuất ra màn hình: HOCLAPTRINHWEB.COM 27 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Tính đahình của lớp (Polymorphism) • • • Từ khóa base, this Ghi đè (overriding) Nạp chồng hàm (Overloading) HOCLAPTRINHWEB.COM 28 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Từ khóa base, this • Từ khóa... TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Xây dựng lớp trừu tượng • Ví dụ 2: Xét đoạn lệnh khai báo và gọi thực thi như sau: HOCLAPTRINHWEB.COM 19 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Xây dựng lớp trừu tượng • Ví dụ 2: Kết quả xuất ra màn hình: HOCLAPTRINHWEB.COM 20 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Xây dựng lớp trừu tượng • Chú ý: ... ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Xây dựng lớp trừu tượng HOCLAPTRINHWEB.COM 16 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Xây dựng lớp trừu tượng • Ví dụ 1: Kết quả được xuất ra màn hình: HOCLAPTRINHWEB.COM 17 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Xây dựng lớp trừu tượng • Ví dụ 2: Xét lớp trừu tượng và lớp dẫn xuất được khai báo như sau: HOCLAPTRINHWEB.COM... trong lớp dẫn xuất (lớp con kế thừa) • Các điểm cần lưu ý khi thực hiện ghi đè: Phương thức ở lớp cơ sở và lớp dẫn xuất phải có cùng dạng hàm (signature) và kiểu dữ liệu trả về Phương thức lớp cơ sở phải được khai báo với từ khóa virtual Phương thức lớp dẫn xuất phải được khai báo với từ khóa override HOCLAPTRINHWEB.COM 33 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Ghi đè (overriding)... trong lớp dẫn xuất (lớp con kế thừa) • Các điểm cần lưu ý khi thực hiện ghi đè: Phương thức ở lớp cơ sở và lớp dẫn xuất phải có cùng dạng hàm (signature) và kiểu dữ liệu trả về Phương thức lớp cơ sở phải được khai báo với từ khóa virtual Phương thức lớp dẫn xuất phải được khai báo với từ khóa override HOCLAPTRINHWEB.COM 34 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Ghi đè (overriding)... đến lớp hiện hành (lớp chứa đoạn lệnh đang cài đặt) Ví dụ: xét lớp cơ sở nhan_vien với khai báo như sau: HOCLAPTRINHWEB.COM 31 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Tính đahình của lớp (Polymorphism) • • • Từ khóa base, this Ghi đè (overriding) Nạp chồng hàm (Overloading) HOCLAPTRINHWEB.COM 32 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Ghi đè (overriding) • Khái niệm... trong C# được ngầm định sealed Do vậy, chúng không thể được thừakế HOCLAPTRINHWEB.COM 24 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Xây dựng lớp niêm phong • Cú pháp: sealed class tên_class { // Các thành viên của class trừu tượng } • Ví dụ: Xét class niêm phong được khai báo như sau: HOCLAPTRINHWEB.COM 25 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN. .. thức: phương thức trừu tượng và phương thức cụ thể Một kiểu được dẫn xuất từ một lớp cơ sở trừu tượng thừakế tất cả các thành viên kiểu cơ sở bao gồm sự thực thi mọi phương thức HOCLAPTRINHWEB.COM 13 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Khái niệm • Khi nào thì sử dụng class trừu tượng? Nếu muốn tạo các class mà các class này sẽ chỉ là các class cơ sở, và không muốn bất cứ ai tạo... (overriding) • Ví dụ: xét lớp cơ sở nhan_vien với khai báo: HOCLAPTRINHWEB.COM 35 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM TRUNG TÂM TIN HỌC Ghi đè (overriding) • Ví dụ: xét lớp dẫn xuất với khai báo: Với ví dụ trên, phương thức tinh_luong trong lớp dẫn xuất được ghi đè lên phương thức tinh_luong trong lớp cơ sở HOCLAPTRINHWEB.COM 36 . th c chất là class c sở (base class) mà c c class kh c có thể đư c dẫn xuất từ nó. • C c class không phải là class trừu tượng (non-abstract class) đư c gọi là lớp c thể (concrete class). tạo c c class mà c c class này sẽ chỉ là c c class c sở, và không muốn bất c ai tạo c c đối tượng c a c c kiểu class này. Class trừu tượng thường đư c dùng để biểu thị rằng nó là class. đư c thời gian trong vi c lập trình • C c class c thể thừa kế từ class kh c. Class mới đư c gọi là class đư c dẫn xuất (hay c n gọi là class con) sẽ đư c quyền truy xuất đến tất c c c thành