Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 43 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
43
Dung lượng
578,82 KB
Nội dung
Click to edit Master subtitle CHƯƠNG 6: style ĐA HÌNH Khoa Công nghệ thông tin Trường Đại học Ngoại ngữ - Tin học, TP.HCM NỘI DUNG Khái niệm Đa hình Các bước xây dựng chương trình có tính đa hình Từ khóa ‘base’ Phương thức trừu tượng (abstract method) Từ khóa ‘new’ với phương thức nguyên tắc lập trình hướng đối tượng Đóng gói (Encapsulation) Giao diện (Interface) Ẩn chi tiết lớp (Đóng gói), cung cấp phương thức cần thiết để dùng (Giao diện) Thừa kế (Inheritance) Tạo lớp thừa kế lớp có Đa hình (Polymorphism) Khả tạo lớp dẫn xuất, cài đặt method lớp sở theo cách khác (tùy lớp dẫn xuất) KHÁI NIỆM ĐA HÌNH Khái niệm Đa hình Đa hình (polymorphism) poly = many morphism = forms Đa hình tượng đối tượng thuộc lớp khác có khả hiểu thông điệp theo cách khác nhiều kiểu tồn đối tượng Khái niệm Đa hình LandRover dùng 2.0 L engine để move LandRover object Ford dùng V engine để move Ford object Honda dùng i-vtec để move Honda object Move • Đa hình phương thức: overriding phương thức • Đa hình đối tượng: nhìn nhận đối tượng theo nhiều kiểu khác Khái niệm Đa hình Phân biệt Overloading vs Overriding? Overloading (nạp chồng) phương thức: giữ tên giá trị trả về, thay đổi đối số Overriding (ghi đè) phương thức: giữ nguyên tên, giá trị trả đối số (không thay đổi nguyên mẫu phương thức) Khái niệm Đa hình Đa hình phương thức Các lớp dẫn xuất cài đặt phương thức lớp sở, lớp dẫn xuất có cách cài đặt khác Khái niệm Đa hình Nhờ đặc tính thừa kế giúp: Tạo lớp dựa lớp có (lớp sở), thừa hưởng lớp sở có Thêm số Field Method vào lớp Cài đặt lại phương thức lớp sở cung cấp CÁC BƯỚC XÂY DỰNG TÍNH ĐA HÌNH 10 Abstract method Lớp trừu tượng có virtual method, method thơng thường khác Trong lớp dẫn xuất, để cài đặt abstract method, dùng từ khóa ‘override’ override: override cho virtual method override cho abstract method 29 Bài tập ví dụ Lớp HinhTron (hình trịn) gồm thơng tin: Bán kính Lớp HinhChuNhat(hình chữ nhật) gồm thông tin: Chiều ngang Chiều đứng Hãy sử dụng kỹ thuật kế thừa đa hình để viết chương trình cho phép nhập thơng tin đối tượng hình trịn hình chữ nhật Sau tính in thơng tin diện tích hình 30 Bài tập ví dụ … Xác định lớp thơng tin lớp Lớp HinhTron Thuộc tính: r (bán kính), s (diện tích) Phương thức: Nhap (nhập thơng tin), TinhDienTich (tính diện tích) Lớp HinhChuNhat Thuộc tính: m (chiều ngang), n (chieu dung), s (diện tích) Phương thức: Nhap (nhập thơng tin), TinhDienTich (tính diện tích) 31 Bài tập ví dụ … Áp dụng kỹ thuật kế thừa Xác định điểm chung lớp Lớp HinhTron Thuộc tính: r (bán kính), s (diện tích) Phương thức: Nhap (nhập thơng tin), TinhDienTich (tính diện tích) Lớp HinhChuNhat Thuộc tính: m (chiều ngang), n (chieu dung), s (diện tích) Phương thức: Nhap (nhập thơng tin), TinhDienTich (tính diện tích) 32 Bài tập ví dụ … Tạo lớp từ điểm chung Lớp HinhHoc Thuộc tính: s (diện tích) Phương thức: Nhap (nhập thơng tin), TinhDienTich (tính diện tích) Trong đó: phương thức khơng làm abstract method abstract class HinhHoc 33 Bài tập ví dụ … Sơ đồ lớp 34 Lớp HinhHoc public abstract class HinhHoc { protected double s; //Định nghĩa constructor //và property get, set } public abstract void Nhap(); public abstract void TinhDienTich(); 35 Lớp HinhTron public class HinhTron: HinhHoc { private double r; //Định nghĩa constructor //và property get, set public override void Nhap() { //Định nghĩa phương thức } } public override void TinhDienTich() { //Định nghĩa phương thức } 36 Lớp HinhChuNhat public class HinhChuNhat:HinhHoc { private double m; private double n; //Định nghĩa constructor //và property get, set public override void Nhap() { //Định nghĩa phương thức } } public override void TinhDienTich() { //Định nghĩa phương thức } 37 Bài tập Thiết kế chương trình quản lý danh sách hình học, gồm loại hình sau: Hình chữ nhật: chiều ngang chiều đứng Hình trịn: bán kính Hình tam giác: chiều dài cạnh a, b c Chức năng: cho phép nhập, xuất danh sách hình mảng chiều Cho biết số lượng hình có diện tích lớn loại 38 TỪ KHĨA NEW VỚI PHƯƠNG THỨC 39 Từ khóa ‘new’ với phương thức Chúng ta đặt từ khóa ‘new’ trước phương thức public class LandRover : Car { public new void Move() { Console.WriteLine(“Move: LandRover (2.0 L engine)"); } } Ý nghĩa: “Tôi phương thức lớp dẫn xuất, hồn tồn khơng có liên quan đến phương thức tên lớp sở” 40 Từ khóa ‘new’ với phương thức Chú ý: Khi dùng ‘new’ với phương thức khơng thực tính đa hình Chúng ta dùng từ khóa ‘new’ trường hợp Nếu muốn cài đặt phương thức hồn tồn khơng liên quan nên dùng tên khác 41 ĐIỂM CHÍNH Đa hình nghĩa tạo lớp dẫn xuất cài đặt phương thức lớp sở theo cách khác Phương thức lớp sở đánh dấu virtual cho phép lớp dẫn xuất dùng từ khóa override để cung cấp cài đặt khác Các bước xây dựng tính đa hình 42 ĐIỂM CHÍNH Lớp đánh dấu abstract Khơng thể dùng để tạo đối tượng Phương thức đánh dấu abstract • Khơng có cài đặt • Lớp dẫn xuất phải cài đặt Từ khóa ‘new’ đứng trước phương thức để báo Đây phương thức Phương thức không liên quan đến phương thức tên lớp sở 43