介面定義了所有類繼承介面時應遵循的語法合同。
介面定義了語法合同 "是什麼" 部分,派生類定義了語法合同 "怎麼 做" 部分。
介面定義了屬性、方法和事件,這些都是介面的成員。
介面只包含了成員的宣告。
成員的定義是派生類的責任。
介面提供了派生類應遵循的標準結構。
介面使得實現介面的類或結構在形式上保持一致。
抽象類在某種程度上與介面類似,但是,它們大多只是用在當只有 少數方法由基類宣告由派生類實現時。
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.乙個類繼承抽象類,那麼就會重寫抽象類中所有的抽...