Bitte sehen Sie diese Java-KlasseAnruf scheint zweideutig, aber läuft perfekt mit unerwartetem Ausgang
class Demo
{
public static void a(String s)
{
System.out.println("string called");
}
public static void a(Object a)
{
System.out.println("Object called");
}
public static void main(String...asrgs)
{
a(null);
}
}
Der Ausgang dieses Codes ist „string genannt“ aber ich bin zu verstehen, nicht in der Lage, dass, wie Compiler in der Lage, zwischen lösen Objekt und Zeichenfolge.
Darüber hinaus untersuchen dieses Codefragment
class Demo
{
public static void a(String s)
{
System.out.println("string called");
}
public static void a(Integer n)
{
System.out.println("number called");
}
public static void a(Object a)
{
System.out.println("Object called");
}
public static void main(String...asrgs)
{
a(null);
}
}
Hier erhalten wir einen Fehler der Kompilierung zu zweideutigen Aufforderung (die ganz offensichtlich ist). Irgendwelche guten Erklärungen dafür?
Erklärung für die erste oder die zweite? –
beide, wenn möglich :) – Gagan93