1.C# 接口與抽象類

接口

從“面向接口編程”的角度看,接口是一中思想層面上的用以實現(xiàn)多態(tài)、提高軟件靈活性和可維護行性的架構(gòu)部件。

從代碼的角度來看,接口是由幾個沒有主體代碼的方法定義組成的集合體,有唯一的名稱,可以被類或這其他接口繼承。

interface interfatceName

{

void Method1();

void Method2(int para1);

void Method3(string para2,string para3);

}

①接口不能被實例化

②接口只能包含方法聲明

③接口的成員包括:方法聲明、屬性、索引器、事件

④接口中不能包含:常量、字段(域)、構(gòu)造函數(shù)、析構(gòu)函數(shù)、靜態(tài)成員

⑤接口中的所有成員默認為public,因此接口中不能有private修飾符

⑥派生類必須實現(xiàn)接口的所有成員

⑦一個類可以直接實現(xiàn)多個接口,接口之間用逗號隔開

⑧一個接口可以有多個父接口,實現(xiàn)該接口的類必須實現(xiàn)父接口中的所有成員

⑨接口是對動作的抽象

⑩接口表示的是:這個對象能做什么

?接口更多的是在系統(tǒng)架構(gòu)設(shè)計方法發(fā)揮作用,主要用于定義模塊之間的通信契約

?接口是引用類型的

抽象類

簡單點說,含有abstract修飾符的類為抽象類,抽象類提供多個派生類共享基類的公共定義,能夠提供抽象方法和非抽象方法。

抽象類不能被實例化,必須通過繼承由派生類實現(xiàn)其抽象方法;

抽象類的派生類可以聲明為抽象類,即抽象派生類,抽象派生類可以覆蓋基類的方法也可以不覆蓋,其非抽象派生類必須覆蓋它們。

①抽象類不能被實例化

②抽象類中的抽象方法只作聲明,不包含實現(xiàn),可以看作沒有實現(xiàn)的虛方法

③抽象類可以有抽象屬性和抽象方法,但不是必須

④非抽象派生類必須覆蓋基類的抽象方法

⑤抽象派生類可以覆蓋基類的方法也可以不覆蓋

⑥抽象類是對根源的抽象

⑦抽象類表示的是:這個對象是什么

⑧抽象類在代碼實現(xiàn)方面發(fā)揮作用,可以實現(xiàn)代碼重用

⑨抽象方法聲明中不能使用static和virtual修飾符


相同點:

①都可以被繼承

②都不能被實例化

③都可以包含方法聲明

④派生類必須實現(xiàn)未實現(xiàn)的方法

不同點:

①抽象基類可以定義字段、屬性、方法實現(xiàn)。接口只能定義屬性、索引器、事件、方法聲明。

②抽象類是一個不完整的類,需要進一步細化。接口是一個行為規(guī)范。

③抽象類只能被單一繼承。接口可以被多重實現(xiàn)。

④抽象類更多的是定義在一系列緊密相關(guān)的類中。接口大多數(shù)是關(guān)系疏松但都實現(xiàn)某一功能的類中。

⑤抽象類是從一系類相關(guān)對象中抽象出來的概念,因此反應(yīng)的是事物的內(nèi)部共性。接口是為了滿足外部調(diào)用而定義的一個功能約定,因此反應(yīng)的是事物的外部特性。

⑥接口基本上不具備繼承的任何具體特點,它僅僅承諾了能夠調(diào)用的方法。

⑦接口可以用于支持回調(diào),而繼承不具備這個特點。

⑧抽象類實現(xiàn)的具體方法默認為虛。接口的類中方法默認是非虛的,當(dāng)然可以聲明為虛的。

⑨如果抽象類實現(xiàn)接口,則可以把接口中方法映射到抽象類中作為抽象方法而不必實現(xiàn),而在抽象類的子類中實現(xiàn)接口中的方法。

⑩抽象類只能作用于引用類型。接口可以作用于值類型和引用類型。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、繼承和多態(tài)在面向?qū)ο缶幊讨校^承(也稱為派生)讓您能夠創(chuàng)建新類,而這些類繼承了父類(也稱為基類)的特征和行為。...
    CarlDonitz閱讀 923評論 0 2
  • 一、抽象類: 抽象類是特殊的類,只是不能被實例化;除此以外,具有類的其他特性;重要的是抽象類可以包括抽象方法,這是...
    FrozenSunset閱讀 550評論 0 3
  • 一、抽象類 1、抽象類含義的概括: 當(dāng)多個類出現(xiàn)相同功能時,但功能主體不同,這樣可以向上抽取,抽取時只抽取功能定義...
    玉圣閱讀 927評論 0 6
  • 1、接口 ? 接口是一種規(guī)范,是一種規(guī)則,它只給出了方法的樣子,規(guī)定你要實現(xiàn)哪些方法,而不給出方法的實現(xiàn),讓接...
    coolchun閱讀 711評論 0 3
  • 其實愛侶之間吵架的時候,越是強勢的一方,反而內(nèi)心中越是脆弱。 因為處于弱勢的一方,所以往往需要樹立起一個表面的強勢...
    夢夕夢閱讀 915評論 2 3

友情鏈接更多精彩內(nèi)容