C#之多型
多型是什麼?
多型就是物件可以表現多個型別的能力。
問題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
以上是我對多型的認識,如果有不足的地方,歡迎給位大佬指正!
相關文章
- java基礎篇之多型Java多型
- JAVA物件導向之多型Java物件多型
- GRASP之多型性模式 - Kamil Grzybek多型模式
- 22. 物件導向之多型物件多型
- C++之多型性小結C++多型
- C#基礎之多執行緒講解C#執行緒
- 物件導向 -- 三大特性之多型物件多型
- 介面之多種返回資料型別資料型別
- Java物件導向04——三大特性之多型Java物件多型
- java基礎(三)—–java的三大特性之多型Java多型
- C#泛型C#泛型
- 【C#】-泛型C#泛型
- C# 泛型C#泛型
- c#:值型別&引用型別C#型別
- C# 多型性C#多型
- C#泛型集合C#泛型
- C#泛型學習C#泛型
- C#泛型約束C#泛型
- 淺談C#泛型C#泛型
- C#型別詳解C#型別
- C# 型別轉換C#型別
- 詳解C#泛型(一)C#泛型
- 詳解C#泛型(三)C#泛型
- 詳解C#泛型(二)C#泛型
- C#中常用集合型別C#型別
- c#重寫和多型C#多型
- C# 泛型集合的自定義型別排序C#泛型型別排序
- C#學習 [型別系統] 泛型(16)C#型別泛型
- 好程式設計師Java學習路線分享三大特性之多型程式設計師Java多型
- c#中值型別和引用型別的區別C#型別
- C#語法——元組型別C#型別
- C#集合型別大揭祕C#型別
- C#基礎資料型別C#資料型別
- C#泛型鍵值對集合C#泛型
- 瞭解下C# 型別轉換C#型別
- 瞭解下C# 資料型別C#資料型別
- C#基礎:泛型委託C#泛型
- C# 中的動態型別C#型別