public class OverloadingTest extends Format{
public int add(String s1){
System.out.println("With String");
return 1;
}
public int add(Object a){
System.out.println("With Object");
return 1;
}
public static void main(String[] args) {
OverloadingTest overloadingTest = new OverloadingTest();
overloadingTest.add(null);
}
}
爲什麼程序With String ?
爲什麼這是程序的輸出?
我曾嘗試閱讀JLS的第6版的輸出,但我還是沒能找到答案。
我可以猜測的唯一原因是選擇了繼承層次結構中最接近的匹配項。
所以在這種情況下,它將採取字符串作爲對象是它的超類。
你回答了你自己的問題:) – 2013-04-10 05:28:43
的subber子類總是選擇.... – Thihara 2013-04-10 05:29:41
@Deepak巴拉哦,太好了。但是,你有任何可以指出的參考或文件嗎? – Sam 2013-04-10 05:30:18