介面實現多型

2021-07-12 02:50:06 字數 1567 閱讀 8495

由於繼承有單根性這乙個特點,也就是說乙個類只能繼承與乙個父類,但是有時候我們需要繼承多個類,那莪這樣就有了介面的出現,

介面實現讓乙個類可以繼承多個類,繼承的多個類實際上就是繼承的介面

介面使用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這個方法傳入...