c#抽象類(lèi)和接口的區(qū)別_第1頁(yè)
已閱讀1頁(yè),還剩2頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論