由於繼承有單根性這乙個特點,也就是說乙個類只能繼承與乙個父類,但是有時候我們需要繼承多個類,那莪這樣就有了介面的出現,
介面實現讓乙個類可以繼承多個類,繼承的多個類實際上就是繼承的介面
介面使用inte***ce關鍵字來表示乙個類是乙個幾介面
介面的特點
1、介面中的成員不能有任何實現(「光說不做」,只是定義了一組未實現的成員)2、為了多型。介面不能被例項化。也就是說,介面不能new(不能建立物件)
3、只要乙個類繼承了乙個介面,這個類就必須實現這個介面中所有的成員
4、介面中的成員不能加「訪問修飾符」,介面中的成員訪問修飾符預設為public,且不能修改。
5、介面中只能有方法、屬性、索引器、事件,不能有「字段」和建構函式。
6、介面與介面之間可以繼承,並且可以多繼承
7、介面並不能去繼承乙個類,而類可以繼承介面 (介面只能繼承於介面,而類既可以繼承介面,也可以繼承類)
8、乙個類可以同時繼承乙個類並實現多個介面,如果乙個子類同時繼承了父類a,並實現了介面ia,那麼語法上a必須寫在ia的前面。
//真的鴨子會游泳 木頭鴨子不會游泳 橡皮鴨子會游泳
//不同的鴨子游泳的方式不一樣,所以在父類中我不知道怎麼實現,所以這裡考慮使用介面的方法
public
inte***ce iswimming
public
class realduck:iswimming
}public
class xpduck : iswimming
}public
class muduck
同樣我們在main方法中呼叫一下
static
void main(string args)
其實會發現介面和抽象類實現多型很相似,只是介面更加注重的是方法的實現
上面提到介面和介面之間可以繼承,並且介面可以繼承多個介面,那麼如果乙個類繼承了乙個有多繼承的介面時,這個類中需要將所有繼承鏈上的方法全部實現
就像下面醬紫————————
public
inte***ce m1
public
inte***ce m2
public
inte***ce m3
//下面這個介面繼承了多個介面
public
inte***ce supperinte***ce : m1, m2, m3
//這個類繼承了乙個有多個繼承的介面,所以需要實現繼承鏈上的所有方法
public
class car : supperinte***ce
public
void
test2()
public
void
test3()
}
C 多型實現之介面
1 什麼是介面?介面就是一種規範,協議 約定好遵守某種規範就可以寫通用的 定義了一組具有各種功能的方法。只是一種能力,沒有具體實現,像抽象方法一樣,光說不做 2 介面存在的意義 多型。多型的意義 程式可擴充套件性。最終 節省成本,提高效率。示例1 控制台應用程式中新建 iflyable ianima...
介面 Csharp多型的實現
介面可以看做是乙個標準,所有繼承的子類需要按照介面中宣告的方法來 介面用關鍵字 inte ce 修飾,介面的名字一般是i able 表示我有什麼能力 介面一般是在命名空間下的,也就是說跟類是在同一級別的 介面也可以放在類裡面,但是沒有什麼意義,因為可以把介面看做是乙個特殊的類,類是解決方法,介面也是...
如何理解介面實現多型
如何理解介面實現多型?舉個售賣汽車的例子 首先發明家發明了汽車,現在寶馬公司生產他們自己的汽車,實現這個介面 奇瑞qq覺得好賺也自己來生產汽車,也實現了這個介面 現在有一家汽車 店,打算賣這兩個型別的車,它必須兼顧所有可能的車型,所以賣的應該是統一為汽車。如下 我們可以看到sellcar這個方法傳入...