若方法有同樣的名字,Java怎樣知道我們指的哪一個方法呢?這裡有一個簡單的規則:每個過載的方法都必須采取獨一無二的自變量類型列表。
若稍微思考幾秒鐘,就會想到這樣一個問題:除根據自變量的類型,程序員如何區分兩個同名方法的差異呢?
即使自變量的順序也足夠我們區分兩個方法(盡管我們通常不願意采用這種方法,因為它會產生難以維護的代碼):
//: OverloadingOrder.java // Overloading based on the order of // the arguments. public class OverloadingOrder { static void print(String s, int i) { System.out.println( "String: " + s + ", int: " + i); } static void print(int i, String s) { System.out.println( "int: " + i + ", String: " + s); } public static void main(String[] args) { print("String first", 11); print(99, "Int first"); } } ///:~
兩個print()方法有完全一致的自變量,但順序不同,可據此區分它們。