C#重載和重寫的區別
重載就是在同一個類中,方法名相同,參數列表不同。參數列表不同包括:參數的個數不同,參數類型不同等。
重載特征:
I.方法名必須相同
II.參數列表必須不相同,與參數列表的順序無關
III.返回值類型可以不相同
用於在給定了參數列表和一組候選函數成員的情況下,選擇一個最佳函數成員來實施調用。
public void test(int x,int y){}
public void test(int x,ref int y){}
public void test(int x,int y,string a){}
重寫就是子類重寫父類的方法,在調用的時候,子類的方法會覆蓋父類的方法,也就是會調用子類的方法。在父類中的方法必須有修飾符virtual,而在子類的方法中必須指明override。
重寫格式:
父類中:
public virtual void myMethod()
{
}
子類中:
public override void myMethod()
{
}
重寫以后,用父類對象和子類對象訪問myMethod()方法,結果都是訪問在子類中重新定義的方法,父類的方法相當於被覆蓋掉了。
子類中為滿足自己的需要來重復定義某個方法的不同實現。
通過使用override關鍵字來實現覆寫。
只有虛方法和抽象方法才能被覆寫。
要求(三相同)
相同的方法名稱
相同的參數列表
相同的返回值類型
---------------------
作者:richnaly
來源:CSDN
原文:https://blog.csdn.net/richnaly/article/details/6446303?utm_source=copy
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
