C#—接口、多態

接口:

  • 定義:interface關鍵字,接口中可以有屬性、方法
  • 接口的名稱通常以“I”開頭,如IFly、IList
  • 如果一個類即繼承了類又實現了接口,那麼類必須寫在接口前面。一個類只能繼承一個父類,但可以實現多個接口。

接口語法:

  • 完全抽象的一種約定
  • 接口就是用來實現的
  • 接口只有方法、屬性、索引和事件的聲明
[訪問修飾符] interface 接口名
{
	//接口成員定義
}
interface IfFly
{
	void Ifly();
}

接口和類有什麼異同

相同點

  • 接口、類和結構都可以從多個接口繼承
  • 接口類似於抽象基類:繼承接口的任何非抽象類型都必須實現接口的所有成員
  • 接口和類都可以包含事件、索引器、方法、屬性

不同點

  • 不能直接實例化接口
  • 接口不包含方法的實現
  • 接口可以多繼承,類只能單繼承
  • 類定義可在不同的源文件之間進行拆分

 類之間不支持多重繼承,接口之間支持。類對接口叫實現,不叫繼承。

抽象類和接口區別

相同點

  • 都不能被直接實例化,都可以通過繼承實現其抽象方法

不同點

  • 接口支持多繼承,抽象類不能實現多繼承。
  • 接口只能定義行爲,抽象類既可以定義行爲,還可以提供實現。
  • 抽象類可以定義字段、屬性、包含有實現的方法
  • 接口可以作用於值類型(Struct)和引用類型(Class),抽象類只能作用於引用類型。

建立多態幾種方式

  • 用父類實現多態
  • 用抽象類實現多態
  • 用接口實現多態

 保留基類方法使用new關鍵字、重寫方法時使用override關鍵字。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章