![Phân tích tư tưởng của nhân dân qua đoạn thơ: Những người vợ nhớ chồng… Những cuộc đời đã hóa sông núi ta trong Đất nước của Nguyễn Khoa Điềm](https://timtailieu.net/upload/document/136415/phan-tich-tu-tuong-cua-nhan-dan-qua-doan-tho-039-039-nhung-nguoi-vo-nho-chong-nhung-cuoc-doi-da-hoa-song-nui-ta-039-039-trong-dat-nuoc-cua-nguyen-khoa-136415.jpg)
Bài giảng Lập trình hướng đối tượng - Chương 4: Đa hình
Số trang: 17
Loại file: pdf
Dung lượng: 819.30 KB
Lượt xem: 14
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Nội dung cơ bản trong bài giảng Lập trình hướng đối tượng - Chương 4: Đa hình nhằm trình bày về khái niệm, đặc điểm và các ví dụ minh họa của đa hình, cách cài đặt đa hình và các ghi chú liên quan, hàm trừa tượng và lớp trừa tượng.
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 - Chương 4: Đa hìnhLẬP TRÌNHHƯỚNG ĐỐI TƯỢNGChương 4Đa hìnhpolymorphismĐa hình (polymorphism) Là 1 đặc điểm chính của pp lthđt Đa hình cho phép 1 đối tượng sẽ thể hiện đúng hành vi tính chất của đối tượng mà nó trỏ (gán) đến Cụ thể khi ta gán 1 đối tượng x của lớp cha bằng đối tượng y của lớp con thì đối tượng x phải thể hiện hành vi tính chất của đối tượng yVí dụ Lớp động vật có phương thức kêu (xuất ra dòng chữ “aaa”) Lớp mèo kế thừa từ lớp động vật, cũng có phương thức kêu (xuất ra dòng chữ “meo meo”) Khi ta khai báo động vật là một con mèo thì nó phải kêu meo meo Dv1 là instance của động vật M1 là instance của mèo Dv1=M1 khi gọi Dv1.keu() kết quả như thế nào?Cài đặt Đa hình Các phương thức của lớp con có cùng tên với phương thức của lớp cha thì khi cài đặt đa hình ta thực hiện – Thêm từ khoá virtual vào trước khai báo phương thức của lớp cha – Thêm từ khoá override vào trước khai báo phương thức trùng tên của lớp conGhi chú virtual: hàm ảo override: hàm che (dùng để che hàm ảo của lớp cha và thực hiện 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( AAA!!!); } virtual public void xuat() { Console.Write( Ten: +ten+ Can 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( MEO MEO!!!); } override public void xuat() { base.xuat(); Console.Write( 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( GAU GAU!!!); } override public void xuat() { base.xuat(); Console.Write( mau long:{0}, maulong); } }class Program { static void Main(string[] args) { DONGVAT[] dv = new DONGVAT[3];//mang 3 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 của tất cả các lớp Override Tostring()Lớp sealed Không cho kế thừaLớp lồng Là lớp nằm trong 1 lớp khác nhằm hỗ trợ cục bộ lớp chứa nó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ượngLớp trừu tượng(Abstract) Hàm trừu tượng là hàm không có sự thực thi – Khai báo abstract kieu tenham(); – Ví dụ hàm keu() của lớp động vật không thực thi, – abstract void keu(); Lớp trừu tượng là lớp không có đối tượng cụ thể, nó dùng để cho các lớp khác kế thừa nó. 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 ít nhất một hàm trừu tượng Khai báo lớp trừu tượng bằng cách thêm từ khoá abstract vào trước tên lớpVí dụ sv tự cài đặt lớp động vật là 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à 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… ...
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 - Chương 4: Đa hìnhLẬP TRÌNHHƯỚNG ĐỐI TƯỢNGChương 4Đa hìnhpolymorphismĐa hình (polymorphism) Là 1 đặc điểm chính của pp lthđt Đa hình cho phép 1 đối tượng sẽ thể hiện đúng hành vi tính chất của đối tượng mà nó trỏ (gán) đến Cụ thể khi ta gán 1 đối tượng x của lớp cha bằng đối tượng y của lớp con thì đối tượng x phải thể hiện hành vi tính chất của đối tượng yVí dụ Lớp động vật có phương thức kêu (xuất ra dòng chữ “aaa”) Lớp mèo kế thừa từ lớp động vật, cũng có phương thức kêu (xuất ra dòng chữ “meo meo”) Khi ta khai báo động vật là một con mèo thì nó phải kêu meo meo Dv1 là instance của động vật M1 là instance của mèo Dv1=M1 khi gọi Dv1.keu() kết quả như thế nào?Cài đặt Đa hình Các phương thức của lớp con có cùng tên với phương thức của lớp cha thì khi cài đặt đa hình ta thực hiện – Thêm từ khoá virtual vào trước khai báo phương thức của lớp cha – Thêm từ khoá override vào trước khai báo phương thức trùng tên của lớp conGhi chú virtual: hàm ảo override: hàm che (dùng để che hàm ảo của lớp cha và thực hiện 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( AAA!!!); } virtual public void xuat() { Console.Write( Ten: +ten+ Can 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( MEO MEO!!!); } override public void xuat() { base.xuat(); Console.Write( 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( GAU GAU!!!); } override public void xuat() { base.xuat(); Console.Write( mau long:{0}, maulong); } }class Program { static void Main(string[] args) { DONGVAT[] dv = new DONGVAT[3];//mang 3 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 của tất cả các lớp Override Tostring()Lớp sealed Không cho kế thừaLớp lồng Là lớp nằm trong 1 lớp khác nhằm hỗ trợ cục bộ lớp chứa nó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ượngLớp trừu tượng(Abstract) Hàm trừu tượng là hàm không có sự thực thi – Khai báo abstract kieu tenham(); – Ví dụ hàm keu() của lớp động vật không thực thi, – abstract void keu(); Lớp trừu tượng là lớp không có đối tượng cụ thể, nó dùng để cho các lớp khác kế thừa nó. 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 ít nhất một hàm trừu tượng Khai báo lớp trừu tượng bằng cách thêm từ khoá abstract vào trước tên lớpVí dụ sv tự cài đặt lớp động vật là 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à 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… ...
Tìm kiếm theo từ khóa liên quan:
Ngôn ngữ lập trình C Cài đặt đa hình Đặc điểm đa hình Lập trình hướng đối tượng Bài giảng lập trình hướng đối tượng Tài liệu lập trình hướng đối 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 281 0 0 -
101 trang 205 1 0
-
Tìm hiểu về ngôn ngữ lập trình C: Phần 1 - Quách Tuấn Ngọc
211 trang 151 0 0 -
14 trang 137 0 0
-
161 trang 134 1 0
-
Giáo trình Vi điều khiển PIC: Phần 1
119 trang 125 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 120 0 0 -
Bài giảng Phương pháp lập trình: Chương 9 - GV. Từ Thị Xuân Hiền
36 trang 115 0 0 -
Đồ án vi xử lý đề tài : nghiên cứu thiết kế mạch đo khoảng cách sử dụng vi điều khiển Pic 16F887
45 trang 101 1 0 -
Giáo trình Phân tích, thiết kế hướng đối tượng với UML: Phần 1 - Trường ĐH Công nghiệp Quảng Ninh
111 trang 98 0 0