c 介面,抽象類和抽象方法

2021-08-28 06:14:23 字數 1777 閱讀 7126

介面定義了所有類繼承介面時應遵循的語法合同。

介面定義了語法合同 "是什麼" 部分,派生類定義了語法合同 "怎麼 做" 部分。

介面定義了屬性、方法和事件,這些都是介面的成員。

介面只包含了成員的宣告。

成員的定義是派生類的責任。

介面提供了派生類應遵循的標準結構。

介面使得實現介面的類或結構在形式上保持一致。

抽象類在某種程度上與介面類似,但是,它們大多只是用在當只有 少數方法由基類宣告由派生類實現時。

1.定義介面:

介面使用 inte***ce 關鍵字宣告,它與類的宣告類似。

介面宣告預設 是 public 的。

通常介面命名已i字母開頭。

inte***ce 介面名

2.介面繼承介面(多個介面用,號進行區分):

inte***ce 介面名:繼承的介面名

3.類實現介面:

訪問修飾符 class 類名:介面名

4.乙個類如何又繼承類又實現介面:

訪問修飾符 class 類名:父類名稱,介面名稱

2.抽象類

抽象類主要用來提供多個派生類可共享的基類的公共定義,

它與非抽象類的主要區別如下:

1.抽象類不能直接例項化

2.抽象類可以包含抽象成員,但非抽象類不可以。

3.抽象類不能被密封。

c#中宣告抽象類時需要使用abstract關鍵字。

1.定義乙個抽象類:

訪問修飾符 abstract class 類名:基類或介面

抽象方法就是在宣告方法時,加上abstract關鍵字,宣告抽象方法時 需要注意以下兩點:

抽象方法必須宣告在抽象類中。

宣告抽象方法時,不能使用virtual,static和private修飾符。

抽象方法宣告引入了乙個新方法,但是不提供該方法的實現,由於 抽象方法不提供任何實際實現,因此抽象方法的方法體只包含乙個分號。

1.抽象方法的宣告:

public abstract 返回資料型別/void 方法名();

1.它們的派生類只能繼承乙個基類,即只能直接繼承乙個抽象類,但可以繼承任意多個介面。

2.抽象類中可以定義成員的實現,但介面中不可以。

3.抽象類中可以包含字段,建構函式,析構函式,靜態成員或常量等,介面不可以。

4.抽象類中的成員是私有的(只要它們不是抽象的),受保護的,內部的或受保護的內部成員(受保護的內部成員只能在應用程式的**或派生類中訪問),但介面中的成員必須是公共的。

抽象類和介面這兩種型別用於完全不同的目的。抽象類主要用於作物件系列的基類,共享某些主要特性,例如共同的目的和結構。介面則主要用於類,這些類在基礎水平上有所不同,但仍可以完成某些相同的任務。

介面,抽象類和抽象方法

1.定義介面 介面使用 inte ce 關鍵字宣告,它與類的宣告類似。介面宣告預設 是 public 的。通常介面命名已i字母開頭。inte ce 介面名 2.介面繼承介面 多個介面用,號進行區分 inte ce 介面名 繼承的介面名 3.類實現介面 訪問修飾符 class 類名 介面名 4.乙個類...

抽象類,抽象方法和介面

抽象類 抽象類是一種模板模式,為所有子類提供乙個通用模板,子類可以在這個模板基礎上進行擴充套件。通過抽象類,可以避免子類設計的隨意性。通過抽象類,我們可以做到嚴格限制子類的設計,使子類之間更加通用。抽象類的要點 public abstract class animal class student e...

抽象類,抽象方法和介面

含有抽象方法的類 沒有方法實現體的方法就是抽象方法 抽象方法的關鍵字是abstract 抽象方法沒有方法體 public abstract 返回值資料型別 抽象方法名 引數列表 注意抽象方法沒有方法體 public abstract class 類名1.乙個類繼承抽象類,那麼就會重寫抽象類中所有的抽...