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多型模式
- C++之多型性小結C++多型
- Java學習筆記之多型Java筆記多型
- 22. 物件導向之多型物件多型
- 物件導向 -- 三大特性之多型物件多型
- 介面之多種返回資料型別資料型別
- c#之多型性_繼承_重寫_虛擬函式_new覆蓋整合測試C#多型繼承函式
- Java物件導向04——三大特性之多型Java物件多型
- java基礎(三)—–java的三大特性之多型Java多型
- C# 泛型C#泛型
- C#泛型C#泛型
- 【C#】-泛型C#泛型
- c# winform之多個控制元件統一事件處理程式C#ORM控制元件事件
- c#:值型別&引用型別C#型別
- C# 多型性C#多型
- C# 泛型方法C#泛型
- hashtable 泛型 C#泛型C#
- C# 多型性C#多型
- [C#]強型別C#型別
- c#多型性C#多型
- c#泛型集合C#泛型
- C#的型別——值型別與引用型別C#型別
- C#型別詳解C#型別
- 淺談C#泛型C#泛型
- C#泛型約束C#泛型
- C#泛型學習C#泛型
- C#中的多型C#多型
- C# 泛型集合SortedListC#泛型
- C#指標型別C#指標型別
- c#泛型的使用C#泛型
- c#泛型續(一)C#泛型
- C# 型別轉換C#型別
- 【C#之值型別vs引用型別】C#型別
- 好程式設計師Java學習路線分享三大特性之多型程式設計師Java多型
- C# 泛型集合的自定義型別排序C#泛型型別排序
- C# 物件比較(值型別、引用型別)C#物件型別