C 中的抽象類和介面

2021-05-22 00:53:13 字數 1402 閱讀 9820

【介紹】

這個問題是經常被問及的。這篇文章將給出關於抽象類和介面的使用,什麼時候用什麼?

【背景】

在以前的觀點中介面抽象類被大量用於提供已知結構的客戶端應用程式。抽象類為客戶端類定義了特定的行為。介面主要被用於物件導向的條款。基於介面的應用程式也被稱為合同程式。這是什麼意思?下面將詳細討論。

【介面和抽象類】

實現乙個介面必須實現它提供的方法、屬性等。抽象類中的抽象方法,必須在其非抽象子類中實現,才能夠實現某種功能。

抽象類和介面的區別

介面:

【**應用】

抽象類和是不能被例項化的類。他們在其他類中執行。抽象類可以有抽象方法也可以有實力方法。如果乙個類中至少有乙個抽象方法這個類被稱為抽象類。

下面是乙個抽象類的示例: //

// abstract class example

//public abstract class myabstractclass

類似的介面也像抽象類不能實現功能。乙個介面包含函式的簽名。

/// 

/// example of inte***ce

///public inte***ce imyinte***ce

【使用場合】

程式介面又被稱為程式合同因為類實現這個介面要實現這個介面的所有方法。在c#中僅僅有介面提供了多繼承。乙個類不能從多個類中繼承但可以同時實現多個介面。這是乙個簡單的關於抽象類和介面的描述。現在有乙個映像。什麼時候用什麼?下面有幾點關於抽象類和介面的使用需要記憶。

1. 當建立乙個專案的可能會被改變時可以使用介面,使用介面優於使用抽象類;因為,介面提供了更多設計靈活。

2. 使用介面引入了多型行為沒有子類和多繼承模型。

3. 使用介面設計乙個多繼承值型別。

4. 當不改變規則使用介面是需要的。

5. 使用抽象類為通用類定義公共的型別。

6. 使用抽象類提**用程式的預設行為。

7. 在繼承中子類僅是邏輯上屬於某個類。

8. 如果在抽象類中新增了新函式基礎類能容易的執行不需要阻斷版本功能。但在介面中額外的介面程式將會打斷版本功能。

【總結】

1. 介面:是類行為或功能的抽象,是一種規範或者標準,或者說是一種契約。

2. 抽象類:對具體物件的最高抽象,這個物件擁有自己的最基本特徵。

從整體上來講,抽象類和介面本質上都是系統的最高抽象。從實際上來講,二者抽象的物件不一樣,導致了它們應用的不同。

C 中抽象類和介面

1.對於介面,我們只指定抽象行為,而抽象類經常會指定 具體的 資料結構 attribute 以及一些抽象行為和具體行為的混合體。所以,從程度看,介面比抽象類更為抽象,因為介面留下了更多想象空間。2.當從乙個抽象類派生乙個出乙個非抽象類時,派生類通過負載的手段,提供抽象方法的具體實現,所以,派生類的方...

C 中的抽象類和介面

一 介面定義 public inte ce idisposable 1,宣告介面在語法上和宣告抽象類完全相同,但不允許提供介面中任何成員的執行方式。一般情況下,介面中只能包含方法 屬性 索引器和事件的宣告。2,介面不能例項化,只能包含其成員的簽名,即只包含未實現的方法宣告。3,介面不能有建構函式或字...

C 中的抽象類和介面

物件導向中的抽象類 1.可用於表示顯示世界中的抽象概念 2.是一種只能定義型別,而不能產生物件的類 3.只能被繼承並重寫相關函式 4.直接特徵就是相關函式沒有完整實現 5.抽象類不能建立物件,只能用於繼承 6.c 中沒有抽象類的概念 7.c 中通過純虛函式實現抽象類 8.純虛函式時指只定義原型的成員...