資源描述:
《第五講 面向?qū)ο缶幊痰母呒墤?yīng)用和異常處理ppt課件.ppt》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、10面向?qū)ο蠹夹g(shù)的高級應(yīng)用本章講解面向?qū)ο缶幊讨械膸追N高級技術(shù),主要包括:接口、抽象類和抽象方法,密封類和密封方法。這些內(nèi)容,相對比較復(fù)雜,但對優(yōu)秀的程序開發(fā)人員應(yīng)該掌握。靈活應(yīng)用它們,可以開發(fā)出結(jié)構(gòu)良好、組織嚴(yán)密,可擴展性好和運行穩(wěn)定的程序。本章重點講解以下內(nèi)容:?接口的概念、申明及使用;?接口多重繼承的實現(xiàn);?掌握顯示接口成員的實現(xiàn)方法?抽象類和抽象方法的基本概念,申明和使用?密封類和密封方法的基本概念,申明和使用10.1接口的概念和申明大家知道,在C#中的類無法實現(xiàn)多重繼承,但在實際工作中,出現(xiàn)
2、多重繼承的情況又比較多,為此提出了接口的概念,通過接口可以實現(xiàn)多重繼承的功能。接口是一種用來定義程序的協(xié)議,用于描述可屬于任何類的一組相關(guān)行為。接口可由方法、屬性、事件或索引器或這4種成員的任何組合構(gòu)成,接口不能包含字段。類可以向繼承基類一樣從接口繼承,且可以繼承多個接口。當(dāng)類繼承接口時,只繼承成員定義,不繼承成員實現(xiàn)。若要實現(xiàn)接口成員,類中的對應(yīng)成員必須是公共的、非靜態(tài)的,并與接口成員有相同的名稱和簽名。10面向?qū)ο蠹夹g(shù)的高級應(yīng)用接口可以繼承其它接口,類可以通過其繼承的基類或接口多次繼承某個接口。在
3、這種情況下,若將該接口申明為新類的一部分,則類只實現(xiàn)該接口一次。若沒有將繼承的接口申明為新類的一部分,其實現(xiàn)將由申明它的基類提供,基類可以使用虛擬成員實現(xiàn)接口成員。接口具有以下特征:?接口類似于抽象基類,繼承接口的任何非抽象類型,都必須實現(xiàn)接口的所有成員。?不能直接實例化接口。?接口不包含方法的實現(xiàn)。?類可以從多個接口繼承。10面向?qū)ο蠹夹g(shù)的高級應(yīng)用?接口自身可以從多個接口繼承。在C#中申明接口的語法如下:修飾符interface接口名稱:繼承的接口列表{接口內(nèi)容}修飾符包括:new、public、p
4、rotected、internal和private。舉例:申明包含編號和姓名兩個屬性,一個自定義方法的接口,方法用來顯示編號和姓名。10面向?qū)ο蠹夹g(shù)的高級應(yīng)用InterfaceImyInterface{stringID{get;set;}stringName{get;10面向?qū)ο蠹夹g(shù)的高級應(yīng)用set;}voidShowInfo();}10.2接口的實現(xiàn)和繼承接口通過類繼承來實現(xiàn)。一個類只可以繼承一個基類,但可以繼承任意多個接口,申明實現(xiàn)接口的類時,需要在基類列表中包含所繼承接口的名稱。舉例:10面向?qū)?/p>
5、象技術(shù)的高級應(yīng)用classProgram:ImyInterface{stringid=“”;stringname=“”;publicstringID{get{returnid;}set{id=value;}}publicstringName10面向?qū)ο蠹夹g(shù)的高級應(yīng)用{get{returnname;}set{name=value;}}publicvoidShowInfo(){messagebox(“編號為:”+ID);messagebox(“姓名為:”+Name);}10面向?qū)ο蠹夹g(shù)的高級應(yīng)用//操控類
6、,并在類中實現(xiàn)接口Programprogram=newProgram();Imyinterfaceimyinterface=program;imyinterface.ID=“No.1”;imyinterface.Name=“李麗”;imyinterface.ShowInfo();上面的舉例,只繼承了一個接口,接口可以多重繼承,在進行多重接口繼承時,被繼承的接口之間需要使用“,”。10面向?qū)ο蠹夹g(shù)的高級應(yīng)用舉例:申明3個接口IPeople、IStudent、Iteacher,定義一個類繼承這三個接口,并
7、實現(xiàn)這些接口中的屬性和方法。interfaceIPeople{stringName{get;set;}10面向?qū)ο蠹夹g(shù)的高級應(yīng)用stringSex{get;set;}}interfaceITeacher:IPeople//繼承公共接口{voidteach();}10面向?qū)ο蠹夹g(shù)的高級應(yīng)用interfaceIStudent:IPeople{voidstudy();}//定義類,繼承這三個接口,并實現(xiàn)接口中的屬性和方法classLeetest:IPeople,ITeacher,IStudent{strin
8、gname=“”;stringsex=“”;publicstringName10面向?qū)ο蠹夹g(shù)的高級應(yīng)用{get{returnname;}set{name=value;}}publicstringSex{get{returnsex;}set(sex=value;}}10面向?qū)ο蠹夹g(shù)的高級應(yīng)用publicvoidteach(){messagebox.show(Name+””+Sex+”是從事計算機語言教學(xué)的老師?!?;}publicvoidstudy(){m