Bài giảng lập trình DOT NET - Bài 5 Hướng đối tượng C# (tt)
Số trang: 33
Loại file: ppt
Dung lượng: 219.00 KB
Lượt xem: 13
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:
Hiểu được khái niệm kế thừa, đa hình. Tầm quan trong của vấn đề này trong LTHĐT.Biết cách thực thi kế thừa, sử dụng các kiểu đa hình khác nhau.Xây dựng lớp cài đặt giao diện, thực thi các giao diện khác nhau.Một số giao diện chuẩn trong thư viện C#.
Nội dung trích xuất từ tài liệu:
Bài giảng lập trình DOT NET - Bài 5 Hướng đối tượng C# (tt) Hướng đối tượng C# (tt) Bài5 Yêu cầu Hiểuđượckháiniệmkếthừa,đahình. Tầmquantrongcủavấnđềnàytrong LTHĐT. Biếtcáchthựcthikếthừa,sửdụngcác kiểuđahìnhkhácnhau. Xâydựnglớpcàiđặtgiaodiện,thựcthi cácgiaodiệnkhácnhau. Mộtsốgiaodiệnchuẩntrongthưviện C#.Đặc biệt hóa, tổng quát hóa Lớpvàthểhiệncủalớptuykhôngtồntại trongcùngmộtkhối,nhưngchúngtồntại trongmộtmạnglướiphụthuộcvàquan hệlẫnnhau Đặcbiệthóavàtổngquáthóalàhaimối quanhệđốingẫuvàphâncấpvớinhauĐặc biệt hóa, tổng quát hóa Vídụ:Tacóthểnóixemáy,ôtôlàtrườnghợp đặcbiệtcủaxe,vì:ngoàinhữngđặcđiểmcủa xenóichung,xemáyvàôtôcòncónhữngđặc điểmriêng. TươngtựHonda,Suzuki,Yamahalànhững trườnghợpđặcbiệtcủaxemáy BMW,Nissan,Toyota,Honda,Huyndailà nhữngtrườnghợpđặcbiệtcủaxeôtôSự kế thừa (inheritance) TrongC#quanhệđặcbiệthóađược thựcthibằngcáchsửdụngsựkếthừa. Đâylàcáchchungnhất,tựnhiênnhấtđể thựcthiquanhệnàyTacóthểnóixemáy,ôtôđượckếthừa haydẫnxuấttừlớpXe.LớpXeđượccoi làlớpcơsở,xemáy,ôtôđượccoilàlớp dẫnxuất.Thực thi kế thừaĐểtạomộtlớpdẫnxuấttừmộtlớptathêmdấuhaichấmvàosautênlớpvàtrướctêncủalớpcơsở.publicclassXeMay:XepublicclassOto:XeLớpdẫnxuấtsẽkếthừatấtcảphươngthức,biếnthànhviêncủalớpcơsở.LớpdẫnxuấtcũngcóthểtạophươngthứcmớibằngviệcđánhdấuvớitừkhóanewSử dụng lớp dẫn xuấtnamespaceExample{publicclassXe{privatestringname;publicXe(stringname){this.name=name;}publicvoidWho(){Console.WriteLine(Toilamotchiecxe); }}Sử dụng lớp dẫn xuấtpublicclassXeMay:Xe{privateintsobanh;publicXeMay(stringname,intsobanh):base(name){this.sobanh=sobanh;}publicnewvoidWho(){base.Who();Console.WriteLine(Xemay{0} banh,sobanh);}} }Sử dụng lớp dẫn xuất classTester { staticvoidMain() { Xexe1=newXe(“Xe”); xe1.Who(); XeMayxe2=newXeMay(“Xemay”,2); xe2.Who(); } }Gọi phương thức khởi dựng Cáclớpkhôngđượckếthừaphươngthức khởidựngcủalớpcơsở,dođólớpdẫnxuất phảithựcthiphươngthứckhởidựngcủa riêngnó. Chỉcóthểsửdụngphươngthứckhởidựng củalớpcơsởthôngquaviệcgọitường minh. publicXeMay(stringname,intsobanh):base(name)Đa hình (polymorphism) Đahìnhlàkhảnăngchophépgởicùngmột thôngđiệpđếnnhữngđốitượngkhácnhaucó cùngchungmộtđặcđiểm,nóicáchkhácthông điệpđượcgởiđikhôngcầnbiếtthựcthểnhận thuộclớpnào,chỉbiếtrằngtậphợpcácthực thểnhậncóchungmộttínhchấtnàođó. VD:thôngđiệp“vẽhình”đượcgởiđếncảhaiđối tượnghìnhhộpvàhìnhtròn.Tronghaiđốitượngnày đềucóchungphươngthứcvẽhình,tuynhiêntuỳ theothờiđiểmmàđốitượngnhậnthôngđiệp,hình tươngứngsẽđượcvẽlên.Phương thức đa hình Đểtạomộtphươngthứcđahình,cầnkhaibáo khóavirtualtrongphươngthứccủalớpcơsở. Vídụ:publicvirtualvoidWho() Lúcnàycáclớpdẫnxuấtđượctựdothựcthicác cáchxửlýcủariêngmìnhtrongcácphiênbản mớicủaphươngthứcWho(). Đểlàmđượcđiềunàycầnthêmtừkhóaoverride đểchồnglênphươngthứcảoWho()củalớpcơ sở.Phương thức đa hìnhnamespaceExample{publicclassXe{privatestringname;publicXe(stringname){this.name=name;}publicvirtualvoidWho(){Console.WriteLine(Toilamotchiecxe); }}Phương thức đa hìnhpublicclassXeMay:Xe{privateintsobanh;publicXeMay(stringname,intsobanh):base(name){this.sobanh=sobanh;}publicoverridevoidWho(){base.Who();Console.WriteLine(Xemay{0} banh,sobanh);}} }Phương thức đa hình classTester { staticvoidMain() { Xexe1=newXe(“Xe”); xe1.Who(); XeMayxe2=newXeMay(“Xemay”,2); xe2.Who(); Xe[]xeArr=newXe[3]; xeArr[0]=newXe(“Xe”); xeArr[1]=newXeMay(“Xemay1”,2); xeArr[2]=newXemay(“Xemay2”,2); for(inti=0;iLớp trừu tượng (abstract) MỗilớpconcủalớpXenênthựcthimộtphương thứcWho(),nhưngđiềunàykhôngbắtbuộc.Để yêucầucáclớpconphảithựcthimộtphươngthức củalớpcơsở,chúngtaphảithiếtkếmộtcách trừutượng. ...
Nội dung trích xuất từ tài liệu:
Bài giảng lập trình DOT NET - Bài 5 Hướng đối tượng C# (tt) Hướng đối tượng C# (tt) Bài5 Yêu cầu Hiểuđượckháiniệmkếthừa,đahình. Tầmquantrongcủavấnđềnàytrong LTHĐT. Biếtcáchthựcthikếthừa,sửdụngcác kiểuđahìnhkhácnhau. Xâydựnglớpcàiđặtgiaodiện,thựcthi cácgiaodiệnkhácnhau. Mộtsốgiaodiệnchuẩntrongthưviện C#.Đặc biệt hóa, tổng quát hóa Lớpvàthểhiệncủalớptuykhôngtồntại trongcùngmộtkhối,nhưngchúngtồntại trongmộtmạnglướiphụthuộcvàquan hệlẫnnhau Đặcbiệthóavàtổngquáthóalàhaimối quanhệđốingẫuvàphâncấpvớinhauĐặc biệt hóa, tổng quát hóa Vídụ:Tacóthểnóixemáy,ôtôlàtrườnghợp đặcbiệtcủaxe,vì:ngoàinhữngđặcđiểmcủa xenóichung,xemáyvàôtôcòncónhữngđặc điểmriêng. TươngtựHonda,Suzuki,Yamahalànhững trườnghợpđặcbiệtcủaxemáy BMW,Nissan,Toyota,Honda,Huyndailà nhữngtrườnghợpđặcbiệtcủaxeôtôSự kế thừa (inheritance) TrongC#quanhệđặcbiệthóađược thựcthibằngcáchsửdụngsựkếthừa. Đâylàcáchchungnhất,tựnhiênnhấtđể thựcthiquanhệnàyTacóthểnóixemáy,ôtôđượckếthừa haydẫnxuấttừlớpXe.LớpXeđượccoi làlớpcơsở,xemáy,ôtôđượccoilàlớp dẫnxuất.Thực thi kế thừaĐểtạomộtlớpdẫnxuấttừmộtlớptathêmdấuhaichấmvàosautênlớpvàtrướctêncủalớpcơsở.publicclassXeMay:XepublicclassOto:XeLớpdẫnxuấtsẽkếthừatấtcảphươngthức,biếnthànhviêncủalớpcơsở.LớpdẫnxuấtcũngcóthểtạophươngthứcmớibằngviệcđánhdấuvớitừkhóanewSử dụng lớp dẫn xuấtnamespaceExample{publicclassXe{privatestringname;publicXe(stringname){this.name=name;}publicvoidWho(){Console.WriteLine(Toilamotchiecxe); }}Sử dụng lớp dẫn xuấtpublicclassXeMay:Xe{privateintsobanh;publicXeMay(stringname,intsobanh):base(name){this.sobanh=sobanh;}publicnewvoidWho(){base.Who();Console.WriteLine(Xemay{0} banh,sobanh);}} }Sử dụng lớp dẫn xuất classTester { staticvoidMain() { Xexe1=newXe(“Xe”); xe1.Who(); XeMayxe2=newXeMay(“Xemay”,2); xe2.Who(); } }Gọi phương thức khởi dựng Cáclớpkhôngđượckếthừaphươngthức khởidựngcủalớpcơsở,dođólớpdẫnxuất phảithựcthiphươngthứckhởidựngcủa riêngnó. Chỉcóthểsửdụngphươngthứckhởidựng củalớpcơsởthôngquaviệcgọitường minh. publicXeMay(stringname,intsobanh):base(name)Đa hình (polymorphism) Đahìnhlàkhảnăngchophépgởicùngmột thôngđiệpđếnnhữngđốitượngkhácnhaucó cùngchungmộtđặcđiểm,nóicáchkhácthông điệpđượcgởiđikhôngcầnbiếtthựcthểnhận thuộclớpnào,chỉbiếtrằngtậphợpcácthực thểnhậncóchungmộttínhchấtnàođó. VD:thôngđiệp“vẽhình”đượcgởiđếncảhaiđối tượnghìnhhộpvàhìnhtròn.Tronghaiđốitượngnày đềucóchungphươngthứcvẽhình,tuynhiêntuỳ theothờiđiểmmàđốitượngnhậnthôngđiệp,hình tươngứngsẽđượcvẽlên.Phương thức đa hình Đểtạomộtphươngthứcđahình,cầnkhaibáo khóavirtualtrongphươngthứccủalớpcơsở. Vídụ:publicvirtualvoidWho() Lúcnàycáclớpdẫnxuấtđượctựdothựcthicác cáchxửlýcủariêngmìnhtrongcácphiênbản mớicủaphươngthứcWho(). Đểlàmđượcđiềunàycầnthêmtừkhóaoverride đểchồnglênphươngthứcảoWho()củalớpcơ sở.Phương thức đa hìnhnamespaceExample{publicclassXe{privatestringname;publicXe(stringname){this.name=name;}publicvirtualvoidWho(){Console.WriteLine(Toilamotchiecxe); }}Phương thức đa hìnhpublicclassXeMay:Xe{privateintsobanh;publicXeMay(stringname,intsobanh):base(name){this.sobanh=sobanh;}publicoverridevoidWho(){base.Who();Console.WriteLine(Xemay{0} banh,sobanh);}} }Phương thức đa hình classTester { staticvoidMain() { Xexe1=newXe(“Xe”); xe1.Who(); XeMayxe2=newXeMay(“Xemay”,2); xe2.Who(); Xe[]xeArr=newXe[3]; xeArr[0]=newXe(“Xe”); xeArr[1]=newXeMay(“Xemay1”,2); xeArr[2]=newXemay(“Xemay2”,2); for(inti=0;iLớp trừu tượng (abstract) MỗilớpconcủalớpXenênthựcthimộtphương thứcWho(),nhưngđiềunàykhôngbắtbuộc.Để yêucầucáclớpconphảithựcthimộtphươngthức củalớpcơsở,chúngtaphảithiếtkếmộtcách trừutượng. ...
Tìm kiếm theo từ khóa liên quan:
ngôn ngữ C++ bài giảng Lập trình Dotnet cấu trúc chương trình các toán tử lập trình máy tính microsoft netGợi ý tài liệu liên quan:
-
Bài giảng Tin học lớp 11 bài 1: Giới thiệu ngôn ngữ lập trình C#
15 trang 237 0 0 -
15 trang 200 0 0
-
Bài giảng học Lý thuyết tài chính- tiền tệ
54 trang 177 0 0 -
65 trang 163 0 0
-
Bài giảng Công nghệ phần mềm - Chương 2: Quy trình xây dựng phần mềm
36 trang 154 0 0 -
69 trang 147 0 0
-
Giáo trình Kỹ thuật lập trình C: Căn bản & nâng cao - Phần 1
202 trang 127 0 0 -
3 trang 118 0 0
-
Giáo trình Kỹ thuật vi điều khiển
121 trang 113 0 0 -
Excel add in development in c and c phần 9
0 trang 109 0 0