




已閱讀5頁,還剩19頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
面向?qū)ο蟮母呒?jí)編程,5.1 類的繼承與多態(tài)性 5.2 版本控制 5.3 接口 5.4 委托和事件,5.1 類的繼承與多態(tài)性,封裝:隱藏調(diào)用者不需要了解的信息。 繼承:簡化類的設(shè)計(jì)。 多態(tài):類為名稱相同的方法提供不同實(shí)現(xiàn)方式的能力。,5.1.1 基類和擴(kuò)充類,繼承表示現(xiàn)實(shí)世界中遺傳關(guān)系的直接模擬。 它表示類之間的內(nèi)在聯(lián)系以及對(duì)屬性和操作的共享。,5.1.1 基類和擴(kuò)充類,聲明擴(kuò)充類的語法: 訪問修飾符 class 擴(kuò)充類名稱:基類名稱 /程序代碼 擴(kuò)充類繼承了所有定義在基類中數(shù)據(jù)的定義和方法。但是擴(kuò)充類不繼承基類的構(gòu)造函數(shù)。,兩種實(shí)現(xiàn)繼承的方式:類繼承和接口繼承。 類繼承只允許單一繼承 ,接口可實(shí)現(xiàn)多重繼承。 被繼承的類叫基類 繼承自其他類的類叫擴(kuò)充類,5.1.1 基類和擴(kuò)充類,【例5-1】基類和擴(kuò)充類的定義及用法。,5.1.2 多態(tài)性,多態(tài)性是指對(duì)象可以表示多個(gè)類型的能力。 在C#中,多態(tài)性的定義是:同一操作作用于不同的類的實(shí)例,不同的類將進(jìn)行不同的解釋,最后產(chǎn)生不同的執(zhí)行結(jié)果。 3種實(shí)現(xiàn)多態(tài)性的方法: 通過繼承實(shí)現(xiàn)多態(tài)性。 通過抽象類實(shí)現(xiàn)多態(tài)性。 通過接口實(shí)現(xiàn)多態(tài)性。,5.1.2 多態(tài)性,1、虛擬方法 在基類中,如果想讓某個(gè)方法或者事件被擴(kuò)充類重寫,可以使用修飾符virtual表明: public virtual void myMethod() /程序代碼 擴(kuò)充類則用override重寫: public override void myMethod() /程序代碼 ,5.1.2 多態(tài)(續(xù)),使用虛擬方法和重寫方法時(shí),要注意下面幾個(gè)方面: 虛擬方法不能聲明為靜態(tài)的。 Virtual不能和private一起使用。 重寫方法的名稱、參數(shù)個(gè)數(shù)、類型以及返回值都必須和虛擬方法的一致。,5.1.2 多態(tài)(續(xù)),【例5-2】重寫基類的方法。,5.1.2 多態(tài)(續(xù)),2、隱藏基類的方法 在擴(kuò)充類中,可以使用new關(guān)鍵字來隱藏基類的方法,即使用一個(gè)完全不同的方法取代舊的方法。 與方法重寫不同的是,使用new關(guān)鍵字時(shí)并不要求基類中的方法聲明為virtual,只要在擴(kuò)充類的方法前聲明為new,就可以隱藏基類的方法。 3.在擴(kuò)充類直接調(diào)用基類的方法 使用base關(guān)鍵字,5.1.2 多態(tài)(續(xù)),【例5-3】隱藏基類的方法。,5.1.3 抽象類,使用abstract修飾符。 抽象類只能做基類。 抽象類與非抽象類的區(qū)別: 第一是抽象類不能直接被實(shí)例化,只能在擴(kuò)充類中通過繼承使用,對(duì)抽象類使用new運(yùn)算符會(huì)產(chǎn)生編譯時(shí)錯(cuò)誤。 第二個(gè)不同點(diǎn)是抽象類可以包含抽象成員,而非抽象類不能包含抽象成員。當(dāng)從抽象類派生非抽象類時(shí),這些非抽象類必須具體實(shí)現(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ù)為止。 注意:對(duì)于無參數(shù)的構(gòu)造函數(shù),執(zhí)行不會(huì)出現(xiàn)問題。如果是帶參數(shù)的構(gòu)造函數(shù),還需要做相應(yīng)的處理。,5.1.5 繼承過程中構(gòu)造函數(shù)的處理,【例5-5】繼承機(jī)制中構(gòu)造函數(shù)的用法。,5.2 版本控制,用C#編寫方法時(shí),如果在擴(kuò)充類中重寫基類的方法,需要用override聲明;要隱藏基類的方法,需要用new聲明,這就是C#進(jìn)行版本控制的依據(jù)。 調(diào)用非虛擬方法時(shí)不會(huì)受到版本的影響 調(diào)用虛擬方法的實(shí)現(xiàn)部分可能會(huì)因擴(kuò)充類的重寫而影響執(zhí)行結(jié)果。,5.2 版本控制,【例5-6】使用virtual、new與override進(jìn)行版本控制。,5.3 接口,接口的主要特點(diǎn)是只有聲明部分,沒有實(shí)現(xiàn)部分。 接口成員的實(shí)現(xiàn)是通過類完成的。 定義在接口中的方法都是public的。 使用interface關(guān)鍵字聲明一個(gè)接口。常用的語法是: 訪問修飾符 interface 接口名稱 / 接口體 一般情況下,以大寫的“I”開頭指定接口名,表明這是一個(gè)接口。 需要在不相關(guān)的類中實(shí)現(xiàn)同樣的功能時(shí),可以使用接口。,5.3 接口,1.接口的聲明與實(shí)現(xiàn) 【例5-7】接口的聲明與實(shí)現(xiàn)。,5.3 接口,2.顯示方式實(shí)現(xiàn)接口 注意:顯示實(shí)現(xiàn)接口時(shí),不能通過類的實(shí)例進(jìn)行訪問,而必須使用接口實(shí)例。 【例5-8】以顯式方式實(shí)現(xiàn)接口。,5.4 委托和事件,1.委托 類似與C+中的函數(shù)指針,不同的是C+語言的函數(shù)指針只能夠指向靜態(tài)的方法,而委托除了可以指向靜態(tài)的方法之外,還可以指向?qū)ο髮?shí)例的方法。 委托的最大特點(diǎn)是:它不知道或不關(guān)心自己引用的對(duì)象的類。 委托的應(yīng)用:回調(diào)(CallBack)機(jī)制、事件處理。 委托的聲明和使用 例如: public delegate void FuncDelegate(string str);,委托舉例,【例5-9】委托的用法。,5.4 委托和事件,2.事件 事件是響應(yīng)用戶對(duì)鼠標(biāo)、鍵盤操作或自動(dòng)執(zhí)行某個(gè)與事件關(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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中國照明行業(yè)出海國別機(jī)會(huì)洞察報(bào)告
- 安全試題分類及答案圖片
- 游戲化教學(xué)在科學(xué)探究課程中的創(chuàng)新應(yīng)用報(bào)告
- 2025年數(shù)字貨幣監(jiān)管政策對(duì)金融監(jiān)管機(jī)制的影響研究報(bào)告
- 周末安全提醒課件
- 周總理主題班會(huì)課件
- 走進(jìn)民族英雄教育
- 助力冬奧班會(huì)課件
- 湖南省衡陽市耒陽市2025年八下英語期末學(xué)業(yè)水平測試模擬試題含答案
- 中國元素英文課件
- GB/T 37234-2018文件鑒定通用規(guī)范
- 健康減肥調(diào)脂降糖
- LaTeX科技排版課件
- 2023年河北交通投資集團(tuán)有限公司招聘筆試題庫及答案解析
- 反向傳播算法課件
- 企業(yè)質(zhì)量安全主體責(zé)任
- 南模自招試卷-2012年自主招生
- 數(shù)據(jù)倉庫開發(fā)規(guī)范
- 固定資產(chǎn)報(bào)廢申請(qǐng)單
- 小學(xué)美術(shù)人美五年級(jí)上冊(cè)偶戲皮影研究課教案
- 工程結(jié)算審核定案表(模板)
評(píng)論
0/150
提交評(píng)論