

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、C#抽象類(lèi)和接口的區(qū)別關(guān)系項(xiàng)目抽象類(lèi)接口概念類(lèi)是抽象了對(duì)象,抽象類(lèi)是抽象了類(lèi),是抽象中的抽象更像一個(gè)規(guī)范,準(zhǔn)則,規(guī)定是否能被實(shí)例化否否是否被繼承可以可以繼承自一個(gè)類(lèi)可以繼承自一個(gè)類(lèi)(單繼承)一個(gè)類(lèi)可以繼承自多個(gè)接口(多繼承)是否被實(shí)現(xiàn)如果包含抽象方法,抽象方法必須定義在抽象類(lèi)里,只能聲明,不能被實(shí)現(xiàn),但其派生類(lèi)必須實(shí)現(xiàn)其方法定義接口只能聲明,不能被實(shí)現(xiàn),但其派生類(lèi)必須實(shí)現(xiàn)其方法抽象類(lèi)主要用于關(guān)系密切的對(duì)象而接口適合為不相關(guān)的類(lèi)提供通用功
2、能抽象類(lèi)里面可以有非抽象方法但接口里只能有抽象方法抽象類(lèi)是對(duì)根源的抽象。抽象類(lèi)表示的是,這個(gè)對(duì)象是什么。接口是對(duì)動(dòng)作的抽象接口表示的是,這個(gè)對(duì)象能做什么抽象類(lèi)更多的是定義在一系列緊密相關(guān)的類(lèi)間而接口大多數(shù)是關(guān)系疏松但都實(shí)現(xiàn)某一功能的類(lèi)中.抽象類(lèi)是從一系列相關(guān)對(duì)象中抽象出來(lái)的概念,因此反映的是事物的內(nèi)部共性接口是為了滿(mǎn)足外部調(diào)用而定義的一個(gè)功能約定,因此反映的是事物的外部特性支持回調(diào)10.盡量避免使用繼承來(lái)實(shí)現(xiàn)組建功能,而是使用黑箱復(fù)用,
3、即對(duì)象組合。因?yàn)槔^承的層次增多,造成最直接的后果就是當(dāng)你調(diào)用這個(gè)類(lèi)群中某一類(lèi),就必須把他們?nèi)考虞d到棧中!后果可想而知.(結(jié)合堆棧原理理解)。同時(shí),有心的朋友可以留意到微軟在構(gòu)建一個(gè)類(lèi)時(shí),很多時(shí)候用到了對(duì)象組合的方法。比如中,Page類(lèi),有ServerRequest等屬性,但其實(shí)他們都是某個(gè)類(lèi)的對(duì)象。使用Page類(lèi)的這個(gè)對(duì)象來(lái)調(diào)用另外的類(lèi)的方法和屬性,這個(gè)是非?;镜囊粋€(gè)設(shè)計(jì)原則。11.如果抽象類(lèi)實(shí)現(xiàn)接口,則可以把接口中方法映射到抽象類(lèi)
4、中作為抽象方法而不必實(shí)現(xiàn),而在抽象類(lèi)的子類(lèi)中實(shí)現(xiàn)接口中方法.四、抽象類(lèi)和接口的使用:1.如果預(yù)計(jì)要?jiǎng)?chuàng)建組件的多個(gè)版本,則創(chuàng)建抽象類(lèi)。抽象類(lèi)提供簡(jiǎn)單的方法來(lái)控制組件版本。2.如果創(chuàng)建的功能將在大范圍的全異對(duì)象間使用,則使用接口。如果要設(shè)計(jì)小而簡(jiǎn)練的功能塊,則使用接口。3.如果要設(shè)計(jì)大的功能單元,則使用抽象類(lèi).如果要在組件的所有實(shí)現(xiàn)間提供通用的已實(shí)現(xiàn)功能,則使用抽象類(lèi)。4.抽象類(lèi)主要用于關(guān)系密切的對(duì)象;而接口適合為不相關(guān)的類(lèi)提供通用功能。抽
5、象類(lèi)主要用于關(guān)系密切的對(duì)象;而接口適合為不相關(guān)的類(lèi)提供通用功能。以下是我在網(wǎng)上看到的幾個(gè)形象比喻真的非常不錯(cuò)呵呵:1.飛機(jī)會(huì)飛,鳥(niǎo)會(huì)飛,他們都繼承了同一個(gè)接口“飛”;但是F22屬于飛機(jī)抽象類(lèi),鴿子屬于鳥(niǎo)抽象類(lèi)。2.就像鐵門(mén)木門(mén)都是門(mén)(抽象類(lèi)),你想要個(gè)門(mén)我給不了(不能實(shí)例化),但我可以給你個(gè)具體的鐵門(mén)或木門(mén)(多態(tài));而且只能是門(mén),你不能說(shuō)它是窗(單繼承);一個(gè)門(mén)可以有鎖(接口)也可以有門(mén)鈴(多實(shí)現(xiàn))。門(mén)(抽象類(lèi))定義了你是什么,接口(鎖
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 抽象類(lèi)和接口題目
- 接口和抽象類(lèi)的區(qū)別 --相信你看完不會(huì)再混淆了
- java繼承,接口,抽象類(lèi)等練習(xí)
- 計(jì)算機(jī)科學(xué)與技術(shù)外文翻譯--詳細(xì)解析java中抽象類(lèi)和接口的區(qū)別
- 托??谡Z(yǔ)抽象類(lèi)答案
- c#類(lèi)的嵌套
- C#語(yǔ)言類(lèi)的公理語(yǔ)義.pdf
- c#文獻(xiàn)翻譯---c#的優(yōu)點(diǎn)
- c#的輸入和輸出
- c#寫(xiě)一個(gè)類(lèi)
- 計(jì)算機(jī)畢業(yè)設(shè)計(jì)外文翻譯--現(xiàn)代并發(fā)抽象c#
- 第八章問(wèn)題多態(tài)性、運(yùn)算符重載、純虛函數(shù)、抽象類(lèi)
- c#程序
- C、C++和C#語(yǔ)言中編程實(shí)體的研究.pdf
- [c#畢設(shè)]c#人事管理系統(tǒng)
- 概述c# 語(yǔ)言的基本原理c# 中對(duì)象
- c#常用函數(shù)和方法集匯總
- c#的命名規(guī)則
- c#爬蟲(chóng)算法
- c#圖像處理
評(píng)論
0/150
提交評(píng)論