Polimorfismo y sobrecarga de métodos
Tengo una pregunta rápida y directa:
Tengo esta clase simple:
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);
}
}
ACTUALIZACIÓN: en realidad es un método con Número en realidad llamado. Perdón por la confusión.
Si llamo a.m (nulo), llama al método con el parámetro Number.
Mi pregunta es: ¿por qué es esto? ¿En qué parte de la especificación del lenguaje Java se especifica esto?