上面使用的max方法僅僅適用於int型資料。但如果你想得到兩個浮點型別資料的最大值呢?
解決方法是建立另一個有相同名字但引數不同的方法,如下面程式碼所示:
public static double max(double num1, double num2) {
if (num1 > num2) {
return num1;
} else {
return num2;
}
}
public static int max(int num1, int num2) {
int result;
if (num1 > num2) {
result = num1;
} else {
result = num2;
}
return result;
}
如果你呼叫max方法時傳遞的是int型引數,則 int型引數的max方法就會被呼叫;
如果傳遞的是double型引數,則double型別的max方法體會被呼叫,這叫做方法過載;
就是說一個類的兩個方法擁有相同的名字,但是有不同的引數列表。
Java編譯器根據方法簽名判斷哪個方法應該被呼叫。
方法過載可以讓程式更清晰易讀。執行密切相關任務的方法應該使用相同的名字。
過載的方法必須擁有不同的引數列表。你不能僅僅依據修飾符或者返回型別的不同來過載方法。