Welchen Typ von Parameter (das Zeug innerhalb der Klammern) erwartet die System.out.println() Methode?
Sie erwartet eine Stringreferenz als Parameter.
Eigentlich kann System.out.println() mit verschiedenen Typen von Parametern umgehen,
einer von ihnen ist eine Stringreferenz.
Aber es wurde keine Version von System.out.println() geschrieben, die eine Point-Referenz nützen könnte.
So dass das folgende nicht aussieht, als ob es funktionieren könnte:
Point a = new Point(); // a ist eine Point-Referenz
System.out.println( a );
|
+--- sollte eine Stringreferenz sein
Jedoch, es funktioniert aus dem folgenden Grund:
Wenn ein Parameter eine Stringreferenz sein sollte, aber eine Referenz auf einen anderen Objekttyp gegeben ist,
wird Java die toString() Methode des Objekts aufrufen um eine Stringreferenz zu bekommen.
Alle Objekte (jeden Typs) haben eine Methode toString(), obwohl das für manche Objekte nicht sehr nützlich ist.