一、課前引言
-
請看一下代碼,你發現什么特殊之處了嗎?
public class MethodOverload { public static void main(String[] args) { System.out.println("The square of integer 7 is " + square(7)); System.out.println("\nThe square of double 7.5 is " + square(7.5)); } public static int square(int x) { return x * x; } public static double square(double y) { return y * y; } }
二、如何重載?如何調用?
上述示例代碼展示了Java的“方法重載(overload)”特性。
-
重載的條件
- 兩個或多個方法才能構成“重載”關系;
- 方法名一致;
- 參數類型不同,參數個數不同,或者是參數類型的順序不同;
-
需要注意
方法的返回值不作為方法重載的判斷條件。
-
查看JDK文檔中System.out.println()方法,發現了什么?
共有10個println()方法構成了“重載關系”,如下圖:
-
如何調用?
由課前引言中的示例可知,調用具有“重載關系”的方法時,傳遞的實參類型決定了所調用的方法。
當實參類型是整型,那么系統會相應的調用形參同樣是整型的int square(int x)方法;當實參類型是浮點型,那么系統會相應的調用形參同樣是整型的int square(double y)方法;
方法調用跟形參變量名(x,y)沒有關系,與形參類型有關。