我有一個快速和簡單明瞭的問題:多態性與方法重載
我有這個簡單的類:
public class A
{
public void m(Object o)
{
System.out.println("m with Object called");
}
public void m(Number n)
{
System.out.println("m with Number called");
}
public static void main(String[] args)
{
A a = new A();
// why will m(Number) be called?
a.m(null);
}
}
UPDATE:其實是法數量實際上被調用。對此感到抱歉。
如果我調用a.m(null),它將使用Number參數調用方法。
我的問題是:這是爲什麼?在java語言規範中,這是指定的?
...因爲'null'不是'Number'對象,因此它落入了更廣義的'Object'存儲桶。 – limc
這很有趣,因爲在我的機器上(運行在日食)它alwways默認爲數字方法 –
+1有趣的問題 –