C#之多型

谷豔爽faye發表於2020-12-06

多型是什麼?

多型就是物件可以表現多個型別的能力。

問題1

當我們在寫程式碼的時候,如果子類和父類如果有相同的方法名,但會出現一條綠線。

解決方法:1、可以在子類方法的修飾符後面加new。2、以可在父類的方法的修飾符後面加virtual(稱為虛方法)

用virtual修飾的方法稱為虛方法,虛方法可以在子類中通過override關鍵字重寫。常見的虛方法:ToString()Equals

然後在子類中重寫父類的方法,加override,呼叫父類的方法,但是把父類的方法進行重寫了,更換了方法裡面的內容(稱為重寫)

什麼是重寫?

不同物件對於同一個方法呼叫的不同行為(指不同物件收到相同訊息時,會產生不同行為)。

虛方法與重寫

1、方法不能用static修飾  2、方法重寫與基類的簽名必須一致  3、virtual不能與private一起使用

抽象方法

抽象方法是用abstract修飾,抽象方法沒有方法體,抽象方法必須在抽象類中,抽象類無法例項化。父類是抽象類,子類繼承了這個抽象類,必須把抽象類中的抽象方法重寫。

虛方法和抽象類比較

多型總結:

建立多型的方式:覅類實現多型、抽象類實現多型、介面實現多型

版本控制:保留基類方法使用new關鍵字、需要重寫方法時使用override

類與成員的修飾符:

類:public、internal、abstract、sealed、static

成員(方法):public、private、protected、internal

protected internal

abstract、virtual、new、override

static

以上是我對多型的認識,如果有不足的地方,歡迎給位大佬指正!

相關文章