Bài giảng Lập trình hướng đối tượng: Đa hình
Số trang: 35
Loại file: pdf
Dung lượng: 1.65 MB
Lượt xem: 12
Lượt tải: 0
Xem trước 4 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài giảng "Lập trình hướng đối tượng: Đa hình" do Lê Viết Mẫn biên soạn cung cấp cho người học các kiến thức: Nhắc lại về thừa kế, đa hình, lớp cơ sở trừu tượng, một số vấn đề khác. Mời các bạn cùng tham khảo nội dung chi tiết.
Nội dung trích xuất từ tài liệu:
Bài giảng Lập trình hướng đối tượng: Đa hình Đa hình v 2.3 - 09/2018Lê Viết Mẫn - lvman@hce.edu.vn 1 Đa hìnhcác bạn đã có thể...cài đặt mô hình bằng C# Lê Viết Mẫn - lvman@hce.edu.vn 2 Đa hình chúng ta sẽ học... Vehicle move()Vehicle veh [ 3 ] = { Train(“TGV”), Car(“twingo”), Ship(“Titanic”)}; Train Car Shipfor (int i = 0; i < 3; i++){ veh[ i ].move();} move() move() move() { { { on rails on the road on water } } } Lê Viết Mẫn - lvman@hce.edu.vn 3 Đa hìnhNội dung1. Nhắc lại về thừa kế2. Đa hình3. Lớp cơ sở trừu tượng4. Một số vấn đề khác Lê Viết Mẫn - lvman@hce.edu.vn 4 Đa hình Nhắc lại về thừa kếLê Viết Mẫn - lvman@hce.edu.vn 5 Đa hìnhThừa kế• Là khả năng lớp con thừa kế từ lớp cha tất cả những thành phần dữ liệu, thuộc tính và hàm thành phần của lớp cha • Ngoại trừ: cấu tử, hủy tử, toán tử =• Cú pháp: class Student : HCEPerson { // Khai báo của lớp Student }• Khai báo và định nghĩa lớp cơ sở như bình thường• Toán tử truy xuất • private : chỉ cho phép truy xuất bên trong lớp, KHÔNG bao gồm các lớp con • protected : chỉ cho phép truy xuất bên trong lớp và cả từ các lớp con của nó Lê Viết Mẫn - lvman@hce.edu.vn 6 Đa hìnhLớp con • Trong phần định nghĩa cấu tử • Chứa lời gọi đến cấu tử của lớp cha (lớp cơ sở)Student.csHCEPerson.cs Lê Viết Mẫn - lvman@hce.edu.vn 7 Đa hìnhLớp con• Có thể định nghĩa lại các hàm thành phần của lớp cha HCEPerson.cs Student.cs Lê Viết Mẫn - lvman@hce.edu.vn 8 Đa hình Sử dụng HCEPerson binh = new HCEPerson(901289, Hoang Van Binh, 1 Le Loi); Student an = new Student(971232, Nguyen Van An, 100 Phung Hung, 43, 2); binh.displayProfile();Program.cs binh = an; // chuyển đổi kiểu ngầm định, ngược lại phải viết tường minh binh.displayProfile(); Class c1 = new Class(“HTTT4253”); // trình biên dịch sẽ báo lỗi, vì không tồn tại hàm addClassTaken() trong lớp HCEPerson binh.addClassTaken(c1); [Name : Hoang Van Binh; ID : 901289; Address : 1 Le Loi] [Name : Nguyen Van An; ID : 971232; Address : 100 Phung Hung] • Kiểu khai báo và kiểu hiện thời • Điều này không hợp lý • Bởi vì nó không phù hợp với kiểu hiện thời mà nó đang nhận • Giải pháp cho điều này sẽ tạo ra kỹ thuật đa hình Lê Viết Mẫn - lvman@hce.edu.vn 9 Đa hình Đa hìnhLê Viết Mẫn - lvman@hce.edu.vn 10 Đa hìnhĐa hình• Khả năng của kiểu dữ liệu A được xem và được sử dụng như kiểu dữ liệu B • Ví dụ: đối tượng kiểu Student có thể được sử dụng thay cho một đối tượng kiểu HCEPerson HCEPerson an = new Student(971232, Nguyen Van An, 100 Phung Hung, 43, 2); an.displayProfile(); [Name : Nguyen Van An; ID : 971232; Address : 100 Phung Hung; Course : 43; Year : 2; Num Of Class Taken : 0] • Việc lựa chọn hàm chính xác được thực hiện tại thời gian chạy và dựa trên đối tượng mà một biến đang chứa Lê Viết Mẫn - lvman@hce.edu.vn 11 Đa hìnhTừ khoá virtual và override• Sử dụng từ khoá virtual để định nghĩa một hàm thành phần của lớp cơ sở là có thể được nạp chồng bởi lớp con • Hàm thành phần của lớp cơ sở lúc này được gọi là hàm ảo• Sử dụng từ khoá override khi lớp thừa kế muốn thay đổi cài đặt của một hàm ảo • Dùng từ khoá base để truy xuất những cài đặt của lớp cơ sở Lê Viết Mẫn - lvman@hce.edu.vn 12 Đa hìnhTừ khoá virtual và overrideHCEPerson.csStudent.cs Lê Viết Mẫn - lvman@hce.edu.vn 13 Đa hìnhTừ khoá sealed• Sử dụng thêm từ khoá sealed nếu bạn muốn ngăn không cho nạp chồng các hàm ảo Lê Viết Mẫn - lvman@hce.edu.vn 14 Đa hìnhỨng dụng• Sử dụng một biến của lớp cơ sở để tham chiếu đến một đối tượng của lớp conHCEPerson an = new Student(971232, Nguyen Van An, 100 Phung Hung, 43, 2);an.displayProfile();• Viết các hàm xử lý cho một lớp các đối tượngRender(Shape s){ s.Draw(); }Circle c = new Circle();Hexagon h = new Hexagon();Render(c);Render(h); Lê Viết Mẫn - lvman@hce.edu.vn 15 Đa hình Lớp trừu tượngLê Viết Mẫn - lvman@hce.edu.vn 16 Đa hìnhAbstract class - lớp trừu tượng• Lớp trừu tượng là một lớp • Phần cài đặt của một số phương thức bị bỏ qua • Những phương thức bị bỏ qua chỉ được cài đặt tại các lớp con• Ví dụ : Thao tác di chuyển cửa sổ được cài đặt sử dụng hai phương thức ẩn và hiện mà chúng được cài đặt phù hợp ở các lớp con Lê Viết Mẫn - lvman@hce.edu.vn 17 Đa hìnhLớp trừu tượng • Là lớp với một hoặc nhiều hàm trừu tượng và được định nghĩa bằng từ khoá abstractHCEPerson.cs • ...
Nội dung trích xuất từ tài liệu:
Bài giảng Lập trình hướng đối tượng: Đa hình Đa hình v 2.3 - 09/2018Lê Viết Mẫn - lvman@hce.edu.vn 1 Đa hìnhcác bạn đã có thể...cài đặt mô hình bằng C# Lê Viết Mẫn - lvman@hce.edu.vn 2 Đa hình chúng ta sẽ học... Vehicle move()Vehicle veh [ 3 ] = { Train(“TGV”), Car(“twingo”), Ship(“Titanic”)}; Train Car Shipfor (int i = 0; i < 3; i++){ veh[ i ].move();} move() move() move() { { { on rails on the road on water } } } Lê Viết Mẫn - lvman@hce.edu.vn 3 Đa hìnhNội dung1. Nhắc lại về thừa kế2. Đa hình3. Lớp cơ sở trừu tượng4. Một số vấn đề khác Lê Viết Mẫn - lvman@hce.edu.vn 4 Đa hình Nhắc lại về thừa kếLê Viết Mẫn - lvman@hce.edu.vn 5 Đa hìnhThừa kế• Là khả năng lớp con thừa kế từ lớp cha tất cả những thành phần dữ liệu, thuộc tính và hàm thành phần của lớp cha • Ngoại trừ: cấu tử, hủy tử, toán tử =• Cú pháp: class Student : HCEPerson { // Khai báo của lớp Student }• Khai báo và định nghĩa lớp cơ sở như bình thường• Toán tử truy xuất • private : chỉ cho phép truy xuất bên trong lớp, KHÔNG bao gồm các lớp con • protected : chỉ cho phép truy xuất bên trong lớp và cả từ các lớp con của nó Lê Viết Mẫn - lvman@hce.edu.vn 6 Đa hìnhLớp con • Trong phần định nghĩa cấu tử • Chứa lời gọi đến cấu tử của lớp cha (lớp cơ sở)Student.csHCEPerson.cs Lê Viết Mẫn - lvman@hce.edu.vn 7 Đa hìnhLớp con• Có thể định nghĩa lại các hàm thành phần của lớp cha HCEPerson.cs Student.cs Lê Viết Mẫn - lvman@hce.edu.vn 8 Đa hình Sử dụng HCEPerson binh = new HCEPerson(901289, Hoang Van Binh, 1 Le Loi); Student an = new Student(971232, Nguyen Van An, 100 Phung Hung, 43, 2); binh.displayProfile();Program.cs binh = an; // chuyển đổi kiểu ngầm định, ngược lại phải viết tường minh binh.displayProfile(); Class c1 = new Class(“HTTT4253”); // trình biên dịch sẽ báo lỗi, vì không tồn tại hàm addClassTaken() trong lớp HCEPerson binh.addClassTaken(c1); [Name : Hoang Van Binh; ID : 901289; Address : 1 Le Loi] [Name : Nguyen Van An; ID : 971232; Address : 100 Phung Hung] • Kiểu khai báo và kiểu hiện thời • Điều này không hợp lý • Bởi vì nó không phù hợp với kiểu hiện thời mà nó đang nhận • Giải pháp cho điều này sẽ tạo ra kỹ thuật đa hình Lê Viết Mẫn - lvman@hce.edu.vn 9 Đa hình Đa hìnhLê Viết Mẫn - lvman@hce.edu.vn 10 Đa hìnhĐa hình• Khả năng của kiểu dữ liệu A được xem và được sử dụng như kiểu dữ liệu B • Ví dụ: đối tượng kiểu Student có thể được sử dụng thay cho một đối tượng kiểu HCEPerson HCEPerson an = new Student(971232, Nguyen Van An, 100 Phung Hung, 43, 2); an.displayProfile(); [Name : Nguyen Van An; ID : 971232; Address : 100 Phung Hung; Course : 43; Year : 2; Num Of Class Taken : 0] • Việc lựa chọn hàm chính xác được thực hiện tại thời gian chạy và dựa trên đối tượng mà một biến đang chứa Lê Viết Mẫn - lvman@hce.edu.vn 11 Đa hìnhTừ khoá virtual và override• Sử dụng từ khoá virtual để định nghĩa một hàm thành phần của lớp cơ sở là có thể được nạp chồng bởi lớp con • Hàm thành phần của lớp cơ sở lúc này được gọi là hàm ảo• Sử dụng từ khoá override khi lớp thừa kế muốn thay đổi cài đặt của một hàm ảo • Dùng từ khoá base để truy xuất những cài đặt của lớp cơ sở Lê Viết Mẫn - lvman@hce.edu.vn 12 Đa hìnhTừ khoá virtual và overrideHCEPerson.csStudent.cs Lê Viết Mẫn - lvman@hce.edu.vn 13 Đa hìnhTừ khoá sealed• Sử dụng thêm từ khoá sealed nếu bạn muốn ngăn không cho nạp chồng các hàm ảo Lê Viết Mẫn - lvman@hce.edu.vn 14 Đa hìnhỨng dụng• Sử dụng một biến của lớp cơ sở để tham chiếu đến một đối tượng của lớp conHCEPerson an = new Student(971232, Nguyen Van An, 100 Phung Hung, 43, 2);an.displayProfile();• Viết các hàm xử lý cho một lớp các đối tượngRender(Shape s){ s.Draw(); }Circle c = new Circle();Hexagon h = new Hexagon();Render(c);Render(h); Lê Viết Mẫn - lvman@hce.edu.vn 15 Đa hình Lớp trừu tượngLê Viết Mẫn - lvman@hce.edu.vn 16 Đa hìnhAbstract class - lớp trừu tượng• Lớp trừu tượng là một lớp • Phần cài đặt của một số phương thức bị bỏ qua • Những phương thức bị bỏ qua chỉ được cài đặt tại các lớp con• Ví dụ : Thao tác di chuyển cửa sổ được cài đặt sử dụng hai phương thức ẩn và hiện mà chúng được cài đặt phù hợp ở các lớp con Lê Viết Mẫn - lvman@hce.edu.vn 17 Đa hìnhLớp trừu tượng • Là lớp với một hoặc nhiều hàm trừu tượng và được định nghĩa bằng từ khoá abstractHCEPerson.cs • ...
Tìm kiếm theo từ khóa liên quan:
Bài giảng Lập trình hướng đối tượng Lập trình hướng đối tượng Kỹ thuật lập trình Đa hình Lớp cơ sở trừu tượngTài liệu liên quan:
-
Giáo trình Lập trình hướng đối tượng: Phần 2
154 trang 278 0 0 -
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 269 0 0 -
NGÂN HÀNG CÂU HỎI TRẮC NGHIỆM THIẾT KẾ WEB
8 trang 211 0 0 -
101 trang 202 1 0
-
Giới thiệu môn học Ngôn ngữ lập trình C++
5 trang 197 0 0 -
Bài giảng Nhập môn về lập trình - Chương 1: Giới thiệu về máy tính và lập trình
30 trang 170 0 0 -
Luận văn: Nghiên cứu kỹ thuật giấu tin trong ảnh Gif
33 trang 154 0 0 -
14 trang 135 0 0
-
Báo cáo thực tập Công nghệ thông tin: Lập trình game trên Unity
27 trang 120 0 0 -
Giáo trình lập trình hướng đối tượng - Lê Thị Mỹ Hạnh ĐH Đà Nẵng
165 trang 114 0 0