zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

Antwort:

Referenzvariablen vom Typ der Klasse Object

Da jede Klasse ein Nachfahre von Object ist, kann eine Object-Referenzvariable für ein Objekt jeder Klasse verwendet werden. Zum Beispiel:

Object obj;

String           str    = "Yertle" ;
Double           dbl    = new Double( 32.0 );
KinderGeburtstag kinder = new KinderGeburtstag ( "Jan", 4 );

obj = str;
obj = dbl;
obj = kinder;

Jede der drei letzten Anweisungen ist korrekt (auch wenn in diesem Programm nutzlos.) Es wäre nicht korrekt , wenn das Folgende den oben stehenden Anweisungen folgen würde:

obj.gruss();

Es ist richtig, dass obj auf ein KinderGeburtstag-Objekt verweist, das eine gruss() Methode besitzt. Aber dem Compiler muss das durch eine Typumwandlung mitgeteilt werden. Das folgende ist OK:

( (KinderGeburtstag)obj ).gruss();

Eine Typumwandlung wird verwendet, um dem Compiler mitzuteilen was "wirklich" in einer Variablen ist, die selbst nicht spezifisch genug ist.

FRAGE 16:

Ist das Folgende OK?

Object obj;
String str = "Yertle" ;

obj = str;
( (KinderGeburtstag)obj ).gruss();