Tengo una pregunta rápida y straighforward:Polimorfismo y sobrecarga de métodos
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 el método con el número realmente ser llamado. Perdón por la confusión.
Si llamo a.m (nulo), llama al método con el parámetro Número.
Mi pregunta es: ¿por qué es esto? donde en la especificación del lenguaje java se especifica esto?
... porque 'null' no es un objeto' Number', por lo que cae en el depósito 'Object' más generalizado. – limc
eso es gracioso porque en mi máquina (ejecutándolo en eclipse) siempre está predeterminado al método Número –
+1 pregunta interesante –