標籤:style blog http color width 2014
Overload:重載就是在同一個類中,方法名相同,參數列表不同.參數列表不同包括:參數的個數不同,參數類型不同.
1 using System; 2 using System.Collections.Generic; 3 using System.Text; 4 5 namespace OverLoading 6 { 7 class Program 8 { 9 public static int max(int i, int j) //靜態方法10 {11 if (i > j)12 return i;13 else14 return j;15 }16 public static double max(double i, double j) //重載靜態方法17 {18 if (i > j)19 return i;20 else21 return j;22 }23 static void Main()24 {25 Console.WriteLine(max(1, 2));26 Console.WriteLine(max(1.1, 120.02));27 Console.ReadLine();28 }29 }30 }
程式碼分析:
在上述樣本中,雖然有多個max方法,但由於方法中參數類型不相同,當在程式中調用max方法時,就會自動去尋找能匹配相應參數的方法。
運行上述代碼,其輸出結果4.3所示。
同名的重載方法之間是通過其參數的數量、類型和順序來區分的,只要這3種屬性的任意一種不同,就可以定義不同的方法。例如:
int methodName(int i, double j)
int methodName(int i, double j, int k)
int methodName(int i, int j)
int methodName(double i, int j)
OverRide:說的是兩個類繼承,子類重寫父類的方法,在調用的時候,子類的方法會覆蓋父類的方法,也就是會調用子類的方法.在父類中的方法必須有修飾符Virtual,而在子類的方法中必須知名OverRide.(方法名稱必須相同,參數也要相同)重寫格式:
1 //父類中 2 public virtual void Method() 3 { 4 5 } 6 //子類中: 7 public override void Method() 8 { 9 10 }
重寫以後,用父類對象和子類對象訪問Method()方法,結果都是訪問在子類中重新定義的方法,父類中的方法相當於備覆蓋掉了.子類中為滿足自己的需要來重複定義某個方法的不同實現.