過載方法
有時必須為不同型別的輸入編寫相同的功能。那時,可以使用具有不同引數集的相同方法名稱。每組不同的引數稱為方法簽名。如示例所示,單個方法可以具有多個簽名。
public class Displayer {
public void displayName(String firstName) {
System.out.println("Name is: " + firstName);
}
public void displayName(String firstName, String lastName) {
System.out.println("Name is: " + firstName + " " + lastName);
}
public static void main(String[] args) {
Displayer displayer = new Displayer();
displayer.displayName("Ram"); //prints "Name is: Ram"
displayer.displayName("Jon", "Skeet"); //prints "Name is: Jon Skeet"
}
}
優點是使用兩個不同數量的輸入呼叫相同的功能。在根據我們傳遞的輸入呼叫方法時(在這種情況下,一個字串值或兩個字串值)執行相應的方法。
方法可以過載:
-
根據傳遞的引數數量。
示例:
method(String s)
和method(String s1, String s2)
。 -
基於引數的順序。
示例:
method(int i, float f)
和method(float f, int i))
。
注意: 只更改返回型別不能過載方法 (int method()
與 String method()
相同,如果嘗試則會丟擲 RuntimeException
)。如果更改返回型別,還必須更改引數以便過載。