C#中多態、重載、重寫差別剖析。本站提示廣大學習愛好者:(C#中多態、重載、重寫差別剖析)文章只能為提供參考,不一定能成為您想要的結果。以下是C#中多態、重載、重寫差別剖析正文
本文實例總結了C#中多態、重載與重寫的概念與差別。關於初學C#的同伙來講有不錯的參考價值。分享給年夜家供年夜家參考。詳細剖析以下:
重寫:是指重寫基類的辦法,在基類中的辦法必需有潤飾符virtual,而在子類的辦法中必需指明override。
格局以下:
1.在基類中:
public virtual void myMethod() { }
2.在子類中:
public override void myMethod() { }
重寫今後,用基類對象和子類對象拜訪myMethod()辦法,成果都是拜訪在子類中從新界說的辦法,基類的辦法相當於被籠罩失落了。
重載:用於在給定了參數列表和一組候選函數成員的情形下,選擇一個最好函數成員來實行挪用。
public void test(int x,int y){} public void test(int x,ref int y){} public void test(int x,int y,string a){}
重載的特點:
I.辦法名必需雷同
II.參數列表必需不雷同,與參數列表的次序有關
III.前往值類型可以不雷同
但假如有泛型,就要留意了!
多態:c#的多態性重要表現在類的繼續上:
子類繼續父類的時刻,能夠湧現同名但辦法界說分歧的情形,
所以在子類中會將原辦法籠罩,完成本身的請求.
須要留意的處所有兩點:
①.可以在子類中被重寫的辦法必定要被標志成virtual(虛擬), abstract(籠統), override(重寫)標志為virtual 和abstract 的函數就是為了重寫而創立的,標志為override的函數自己是由前兩種函數重寫而來的,所以它可以被重寫也是瓜熟蒂落的了;
②.重寫的函數必需在子類中湧現,並且任何一個父類的函數在其一個子類中只能被重寫一次。(這一點很好懂得,當你要重寫兩次時,該子類中將界說兩個前往類型,辦法稱號 和參數列表都雷同的函數,這確定是弗成能的)。
信任本文所述對年夜家C#法式設計的進修有必定的參考自創價值。