4.11.3 | Zuweisungskompatibilität
|
Damit zwei Variablen mit Verweistypen einander zugewiesen werden
können, müssen die Verweistypen kompatibel sein.
Zuweisungen sind nur zulässig, wenn
bereits beim Kompilieren eindeutig festgestellt werden kann,
dass die beiden Verweistypen kompatibel sind.
In Fällen, in denen es die Anwendungssituation erforderlich macht,
dass die Entscheidung auf Zuweisungskompatibilität erst zur Laufzeit
erfolgt, ist ein so genanntes Cast-Konstrukt erforderlich.
Cast-Konstrukte werden im nächsten Abschnitt behandelt.
Nachfolgend sind die Bedingungen aufgelistet, unter denen die Zuweisung
a = b;
zulässig ist, wenn a und b Verweistypen sind.
Alle nicht genannten Fälle weist der Compiler als Fehler zurück.
a verweist auf eine Klasse
Wenn a von einem Verweistyp auf eine Klasse ist,
ist die Zuweisung
erlaubt, wenn
- b entweder auf dieselbe Klasse wie a oder auf
eine Unterklasse von a verweist oder
- b ein Array und a vom Typ Object ist.
a verweist auf ein Interface
Wenn a auf ein Interface verweist, ist die Zuweisung zulässig, wenn
- b eine Klasse ist, die das Interface a oder ein davon abgeleitetes Interface implementiert.
a verweist auf ein Array
Unter der Annahme, dass a auf ein Array mit dem Komponententyp T1
und b auf ein Array mit dem Komponententyp T2
verweist, ist die Zuweisung zulässig, wenn
- T1 und T2 dieselben einfachen Datentypen sind oder
- T1 und T2 Verweistypen sind, wobei T2 an T1
zugewiesen werden kann. So könnte man einem Array mit dem Elementtyp Object ein Array mit dem Elementtyp Integer zuweisen.
Copyright © 2002 dpunkt.Verlag, Heidelberg. Alle Rechte vorbehalten.