Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 17 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
17
Dung lượng
819,3 KB
Nội dung
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Chương Đa hình polymorphism Đa hình (polymorphism) Là đặc điểm pp lthđt Đa hình cho phép đối tượng thể hành vi tính chất đối tượng mà trỏ (gán) đến Cụ thể ta gán đối tượng x lớp cha đối tượng y lớp đối tượng x phải thể hành vi tính chất đối tượng y Ví dụ Lớp động vật có phương thức kêu (xuất dịng chữ “aaa”) Lớp mèo kế thừa từ lớp động vật, có phương thức kêu (xuất dịng chữ “meo meo”) Khi ta khai báo động vật mèo phải kêu meo meo Dv1 instance động vật M1 instance mèo Dv1=M1 gọi Dv1.keu() kết nào? Cài đặt Đa hình Các phương thức lớp có tên với phương thức lớp cha cài đặt đa hình ta thực – Thêm từ khố virtual vào trước khai báo phương thức lớp cha – Thêm từ khoá override vào trước khai báo phương thức trùng tên lớp Ghi virtual: hàm ảo override: hàm che (dùng để che hàm ảo lớp cha thực hàm che trước) public class DONGVAT { string ten; int cannang; public DONGVAT() { ten=""; cannang=0; } public DONGVAT(string ten,int cannang) { this.ten=ten; this.cannang=cannang; } virtual public void keu() //ảo { Console.Write("\n AAA!!!"); } virtual public void xuat() { Console.Write("\nTen: "+ten+"\nCan nang: "+cannang+" Kg"); } } class MEO:DONGVAT { string maulong; public MEO():base() { maulong = ""; } public MEO(string ten, int cannang, string maulong): base(ten, cannang) { this.maulong = maulong; } override public void keu() { Console.Write("\n MEO MEO!!!"); } override public void xuat() { base.xuat(); Console.Write("\n mau long:{0}", maulong); } } class CHO:DONGVAT { string maulong; public CHO ():base() { maulong = ""; } public CHO (string ten, int cannang, string maulong): base(ten, cannang) { this.maulong = maulong; } override public void keu() { Console.Write("\n GAU GAU!!!"); } override public void xuat() { base.xuat(); Console.Write("\n mau long:{0}", maulong); } } class Program { static void Main(string[] args) { DONGVAT[] dv = new DONGVAT[3];//mang dong vat dv[0] = new DONGVAT(); dv[0].keu(); dv[1] = new CHO("Lulu",15,"vang"); dv[1].keu(); dv[2] = new MEO("Doremon",3,"xanh"); dv[2].keu(); } } Lớp object gốc tất lớp Override Tostring() Lớp sealed Không cho kế thừa Lớp lồng Là lớp nằm lớp khác nhằm hỗ trợ cục lớp chứa public class Fraction { private int numerator; // biến thành viên private private int denominator; public Fraction( int numerator, int denominator) { this.numerator = numerator; this.denominator = denominator; } public override string ToString() { StringBuilder s = new StringBuilder(); s.AppendFormat(“{0}/{1}”,numerator, denominator); return s.ToString(); } internal class FractionArtist { public void Draw( Fraction f) { Console.WriteLine(“Drawing the numerator {0}”, f.numerator); Console.WriteLine(“Drawing the denominator {0}”, f.denominator); } } } public class Tester { static void Main() { Fraction f1 = new Fraction( 3, 4); Console.WriteLine(“f1: {0}”, f1.ToString()); Fraction.FractionArtist fa = new Fraction.FractionArtist(); fa.Draw( f1 ); } } Hàm trừu tượng Lớp trừu tượng(Abstract) Hàm trừu tượng hàm khơng có thực thi – Khai báo abstract kieu tenham(); – Ví dụ hàm keu() lớp động vật không thực thi, – abstract void keu(); Lớp trừu tượng lớp khơng có đối tượng cụ thể, dùng lớp khác kế thừa Ví dụ – Lớp chó, lớp mèo … kế thừa lớp động vật – Lớp tam giác, hình trịn… kế thừa từ lớp hình học Lớp trừu tượng chứa hàm trừu tượng Khai báo lớp trừu tượng cách thêm từ khố abstract vào trước tên lớp Ví dụ sv tự cài đặt lớp động vật lớp trừu tượng có hàm trừu tượng keu(); Lớp chó, mèo: kế thừa từ lớp động vật Lớp hình học lớp trừu tượng có hàm trừu tượng: tinhdientich();, tinhchuvi(); Lớp tam giác, hình chữ nhật kế thừa từ lớp hình học… .. .Chương Đa hình polymorphism Đa hình (polymorphism) Là đặc điểm pp lthđt Đa hình cho phép đối tượng thể hành vi tính chất đối tượng mà trỏ (gán) đến Cụ thể ta gán đối tượng x lớp cha đối. .. Lớp trừu tượng lớp khơng có đối tượng cụ thể, dùng lớp khác kế thừa Ví dụ – Lớp chó, lớp mèo … kế thừa lớp động vật – Lớp tam giác, hình trịn… kế thừa từ lớp hình học Lớp trừu tượng chứa... chất đối tượng mà trỏ (gán) đến Cụ thể ta gán đối tượng x lớp cha đối tượng y lớp đối tượng x phải thể hành vi tính chất đối tượng y Ví dụ Lớp động vật có phương thức kêu (xuất dòng