Ho una domanda veloce e straighforward:Polimorfismo e metodo di sovraccarico
ho questo semplice classe:
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: in realtà è il metodo con il numero in realtà essere chiamato. Mi dispiace per la confusione.
Se chiamo a.m (null) chiama metodo con parametro Number.
La mia domanda è: perché è questo? dove sono specificate le specifiche del linguaggio Java?
... perché 'null' non è un oggetto' Numero', quindi rientra nel secchio 'Object' più generalizzato. – limc
è divertente perché sul mio computer (eseguendolo su eclipse) è sempre impostato sul metodo Numero –
+1 domanda interessante –