




已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
面向?qū)ο蟮母呒壘幊?5.1 類的繼承與多態(tài)性 5.2 版本控制 5.3 接口 5.4 委托和事件,5.1 類的繼承與多態(tài)性,封裝:隱藏調(diào)用者不需要了解的信息。 繼承:簡化類的設(shè)計。 多態(tài):類為名稱相同的方法提供不同實現(xiàn)方式的能力。,5.1.1 基類和擴(kuò)充類,繼承表示現(xiàn)實世界中遺傳關(guān)系的直接模擬。 它表示類之間的內(nèi)在聯(lián)系以及對屬性和操作的共享。,5.1.1 基類和擴(kuò)充類,聲明擴(kuò)充類的語法: 訪問修飾符 class 擴(kuò)充類名稱:基類名稱 /程序代碼 擴(kuò)充類繼承了所有定義在基類中數(shù)據(jù)的定義和方法。但是擴(kuò)充類不繼承基類的構(gòu)造函數(shù)。,兩種實現(xiàn)繼承的方式:類繼承和接口繼承。 類繼承只允許單一繼承 ,接口可實現(xiàn)多重繼承。 被繼承的類叫基類 繼承自其他類的類叫擴(kuò)充類,5.1.1 基類和擴(kuò)充類,【例5-1】基類和擴(kuò)充類的定義及用法。,5.1.2 多態(tài)性,多態(tài)性是指對象可以表示多個類型的能力。 在C#中,多態(tài)性的定義是:同一操作作用于不同的類的實例,不同的類將進(jìn)行不同的解釋,最后產(chǎn)生不同的執(zhí)行結(jié)果。 3種實現(xiàn)多態(tài)性的方法: 通過繼承實現(xiàn)多態(tài)性。 通過抽象類實現(xiàn)多態(tài)性。 通過接口實現(xiàn)多態(tài)性。,5.1.2 多態(tài)性,1、虛擬方法 在基類中,如果想讓某個方法或者事件被擴(kuò)充類重寫,可以使用修飾符virtual表明: public virtual void myMethod() /程序代碼 擴(kuò)充類則用override重寫: public override void myMethod() /程序代碼 ,5.1.2 多態(tài)(續(xù)),使用虛擬方法和重寫方法時,要注意下面幾個方面: 虛擬方法不能聲明為靜態(tài)的。 Virtual不能和private一起使用。 重寫方法的名稱、參數(shù)個數(shù)、類型以及返回值都必須和虛擬方法的一致。,5.1.2 多態(tài)(續(xù)),【例5-2】重寫基類的方法。,5.1.2 多態(tài)(續(xù)),2、隱藏基類的方法 在擴(kuò)充類中,可以使用new關(guān)鍵字來隱藏基類的方法,即使用一個完全不同的方法取代舊的方法。 與方法重寫不同的是,使用new關(guān)鍵字時并不要求基類中的方法聲明為virtual,只要在擴(kuò)充類的方法前聲明為new,就可以隱藏基類的方法。 3.在擴(kuò)充類直接調(diào)用基類的方法 使用base關(guān)鍵字,5.1.2 多態(tài)(續(xù)),【例5-3】隱藏基類的方法。,5.1.3 抽象類,使用abstract修飾符。 抽象類只能做基類。 抽象類與非抽象類的區(qū)別: 第一是抽象類不能直接被實例化,只能在擴(kuò)充類中通過繼承使用,對抽象類使用new運算符會產(chǎn)生編譯時錯誤。 第二個不同點是抽象類可以包含抽象成員,而非抽象類不能包含抽象成員。當(dāng)從抽象類派生非抽象類時,這些非抽象類必須具體實現(xiàn)所繼承的所有抽象成員。,5.1.4 密封類,密封類是指不能被其他類繼承的類。 在C#語言中,使用sealed關(guān)鍵字聲明密封類。 sealed關(guān)鍵字也可以限制基類中的方法,防止被擴(kuò)充類重寫,帶有sealed修飾符的方法稱為密封方法。密封方法同樣不能被擴(kuò)充類中的方法繼承,也不能被隱藏。,5.1.5 繼承過程中構(gòu)造函數(shù)的處理,C#在內(nèi)部按照下列順序處理構(gòu)造函數(shù):從擴(kuò)充類依次向上尋找其基類,直到找到最初的基類,然后開始執(zhí)行最初的基類的構(gòu)造函數(shù),再依次向下執(zhí)行擴(kuò)充類的構(gòu)造函數(shù),直至執(zhí)行完最終的擴(kuò)充類的構(gòu)造函數(shù)為止。 注意:對于無參數(shù)的構(gòu)造函數(shù),執(zhí)行不會出現(xiàn)問題。如果是帶參數(shù)的構(gòu)造函數(shù),還需要做相應(yīng)的處理。,5.1.5 繼承過程中構(gòu)造函數(shù)的處理,【例5-5】繼承機(jī)制中構(gòu)造函數(shù)的用法。,5.2 版本控制,用C#編寫方法時,如果在擴(kuò)充類中重寫基類的方法,需要用override聲明;要隱藏基類的方法,需要用new聲明,這就是C#進(jìn)行版本控制的依據(jù)。 調(diào)用非虛擬方法時不會受到版本的影響 調(diào)用虛擬方法的實現(xiàn)部分可能會因擴(kuò)充類的重寫而影響執(zhí)行結(jié)果。,5.2 版本控制,【例5-6】使用virtual、new與override進(jìn)行版本控制。,5.3 接口,接口的主要特點是只有聲明部分,沒有實現(xiàn)部分。 接口成員的實現(xiàn)是通過類完成的。 定義在接口中的方法都是public的。 使用interface關(guān)鍵字聲明一個接口。常用的語法是: 訪問修飾符 interface 接口名稱 / 接口體 一般情況下,以大寫的“I”開頭指定接口名,表明這是一個接口。 需要在不相關(guān)的類中實現(xiàn)同樣的功能時,可以使用接口。,5.3 接口,1.接口的聲明與實現(xiàn) 【例5-7】接口的聲明與實現(xiàn)。,5.3 接口,2.顯示方式實現(xiàn)接口 注意:顯示實現(xiàn)接口時,不能通過類的實例進(jìn)行訪問,而必須使用接口實例。 【例5-8】以顯式方式實現(xiàn)接口。,5.4 委托和事件,1.委托 類似與C+中的函數(shù)指針,不同的是C+語言的函數(shù)指針只能夠指向靜態(tài)的方法,而委托除了可以指向靜態(tài)的方法之外,還可以指向?qū)ο髮嵗姆椒ā?委托的最大特點是:它不知道或不關(guān)心自己引用的對象的類。 委托的應(yīng)用:回調(diào)(CallBack)機(jī)制、事件處理。 委托的聲明和使用 例如: public delegate void FuncDelegate(string str);,委托舉例,【例5-9】委托的用法。,5.4 委托和事件,2.事件 事件是響應(yīng)用戶對鼠標(biāo)、鍵盤操作或自動執(zhí)行某個與事件關(guān)聯(lián)的方法的行為。事件和方法一樣具有簽名,簽名包括名稱和參數(shù)列表。 事件的簽名通過委托類型來定義,為事件定義委托的常用形式為: public delegate MyEventHandler(Object sender, EventArgs e) 事件可以使用event關(guān)鍵字進(jìn)行聲明,例如: public event MyEventHandler TriggerIt; 若要引發(fā)該
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 山西華澳商貿(mào)職業(yè)學(xué)院《臨床檢驗儀器》2023-2024學(xué)年第二學(xué)期期末試卷
- 濟(jì)南護(hù)理職業(yè)學(xué)院《嵌入式課程設(shè)計》2023-2024學(xué)年第二學(xué)期期末試卷
- 臨床免疫學(xué)檢驗課件 第3章 免疫原和抗血清的制備學(xué)習(xí)資料
- 西安海棠職業(yè)學(xué)院《隸書》2023-2024學(xué)年第一學(xué)期期末試卷
- 江蘇農(nóng)牧科技職業(yè)學(xué)院《硬筆書法》2023-2024學(xué)年第一學(xué)期期末試卷
- 鹽城工業(yè)職業(yè)技術(shù)學(xué)院《工商管理級學(xué)碩》2023-2024學(xué)年第二學(xué)期期末試卷
- 二零二五版資金監(jiān)管委托協(xié)議樣本
- 二零二五全新美食城檔口出租協(xié)議
- 二零二五版學(xué)生托人接送免責(zé)協(xié)議書范文
- 游戲開發(fā)回顧與展望
- 產(chǎn)品QC工程圖 (質(zhì)量保證工程圖)Excel表格
- 人民醫(yī)院人才隊伍建設(shè)規(guī)劃人才隊伍建設(shè)五年規(guī)劃
- 電氣平行檢驗用表
- GB∕T 14527-2021 復(fù)合阻尼隔振器和復(fù)合阻尼器
- 一年級語文下冊課件-21 小壁虎借尾巴24-部編版(15張PPT)
- 患者隨訪率低原因分析以及對策
- DB32∕T 2349-2013 楊樹一元立木材積表
- 首屆上??萍计诳庉嫾寄艽筚愒囶}
- 隧道二襯、仰拱施工方案
- Q∕GDW 12106.4-2021 物聯(lián)管理平臺技術(shù)和功能規(guī)范 第4部分:邊緣物聯(lián)代理與物聯(lián)管理平臺交互協(xié)議規(guī)范
- 中國癲癇診療指南-癲癇持續(xù)狀態(tài)課件
評論
0/150
提交評論