我想測試,如果我有兩個constructors
一個有params
爲int
和其他long
。被調用時會執行哪一個?兩個構造函數與int和long參數在同一類
我曾嘗試:
public class OverloadingExample {
public OverloadingExample(int i, int j) {
// TODO Auto-generated constructor stub
System.out.println("Hello"+" "+(i+j));
}
public OverloadingExample(long i, long j) {
// TODO Auto-generated constructor stub
System.out.println("long"+(i+j));
}
public static void main(String[] args) {
OverloadingExample duplicacyInHashMap = new OverloadingExample(20, 30);
System.out.println(duplicacyInHashMap);
}
}
OUTPUT:
Hello 50
[email protected]
相信無論是構造方法調用,因爲params 20,30
是int
以及long
類型。那麼第二個構造函數爲什麼不打印「long 50」又有什麼問題。
謝謝澄清。我會擺脫我以前的評論,以避免混淆。在任何情況下,只有一次調用時它不會執行幾個方法/構造函數,它不應該這樣做。這幾乎是一場災難。只有在調用多個方法時才應該執行多個方法。您提供的兩個構造函數都可以被調用_,但只有一個**將被執行。 – Monkeygrinder