一、Abstract:
abstract方法必須在abstarct類(lèi)中聲明,沒(méi)有默認(rèn)實(shí)現(xiàn),子類(lèi)必須實(shí)現(xiàn)。
二、Virtual:
virtual方法可以聲明在abstract類(lèi)中,也可以聲明在非abstarct類(lèi)中,并且可以有默認(rèn)實(shí)現(xiàn)。
三、Interface(接口)
接口的一些描述
1. 接口是一個(gè)引用類(lèi)型,通過(guò)接口可以實(shí)現(xiàn)多重繼承。2. C#中接口不能有new、public、PRotected、internal、private等修飾符。3. 接口中只能聲明"抽象"成員(所以不能直接下一步對(duì)接口進(jìn)行實(shí)例化(即不能使用new操作符聲明一個(gè)接口的實(shí)例對(duì) 象)),而不能聲明共有的域或者私有的成員變量。4. 接口聲明不包括數(shù)據(jù)成員,只能包含方法、屬性、事件、索引等成員。5. 接口成員的訪問(wèn)級(jí)別是默認(rèn)的(默認(rèn)為public),所以在聲明時(shí)不能再為接口成員指定除public外的任何訪問(wèn)修飾符,否則 編譯器會(huì)報(bào)錯(cuò)。6. 接口成員不能有static、abstract、override、virtual修飾符,使用new修飾符不會(huì)報(bào)錯(cuò),但會(huì)給出警告說(shuō)不需要關(guān)鍵字new。7. 在聲明接口成員的時(shí)候,不準(zhǔn)為接口成員編寫(xiě)具體的可執(zhí)行代碼,也就是說(shuō),只要在對(duì)接口進(jìn)行聲明時(shí)指明接口的成員名稱和參數(shù)就可以了。8. 接口一旦被繼承,子類(lèi)需要把接口中所有成員實(shí)例化(通過(guò)具體的可執(zhí)行代碼實(shí)現(xiàn)接口抽象成員的操作)。
(百度百科:http://baike.baidu.com/link?url=UlmCxkt6O7lqmGK4IdM5CmzwhK3nnEQmA3dCkh9I6-noq3GfVv-chDLIo3QMQYPlEo3Vv8PK8J2e9OidgP8Sta)
接口的意義
1. 接口一個(gè)比較常用的用法是聲明一組行為方法,這組行為方法可以有不同的實(shí)現(xiàn)和多個(gè)實(shí)現(xiàn),而使用這組行為的類(lèi)也只關(guān)心行為的聲明。簡(jiǎn)單說(shuō)就是定義了交互的契約。
2. 面向接口編程,容易對(duì)應(yīng)用系統(tǒng)進(jìn)行分層,不同層次之間使用接口進(jìn)行交互。這有以下好處:層次職責(zé)清晰;容易做UT;容易解耦(DI,IoC)。
3. 可以實(shí)現(xiàn)多重繼承。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注