Weitere aktuelle Java-Titel finden Sie bei dpunkt.
 Inhaltsverzeichnis   Auf Ebene Zurück   Seite Zurück   Seite Vor   Auf Ebene Vor   Eine Ebene höher   Index


4.11.4

Cast-Konstrukte mit Verweistypen


Cast-Konstrukte werden vorwiegend benötigt, wenn folgende Umstände zusammentreffen: In diesem Fall kann der Verweis mit einem Cast in die Unterklasse verwandelt werden. Nach der Umwandlung kann dann die Methode aufgerufen werden. Im folgenden Beispiel wird ein Verweis auf Point in den Typ Square umgewandelt, um die Methode area() aufzurufen, die nur in Square, nicht aber in Point verfügbar ist:
  Point p;

  // Zuweisung eines Exemplars von Square an p;
  int a = ((Square)p).area();
Hierbei ist zu beachten, dass zweimal geklammert werden muss. Einmal wird der Name der Klasse, in die umgewandelt wird, in Klammern eingefasst. Diese Klammerung wird dann noch einmal zusammen mit der Variable geklammert.

Eine weiterer Anwendungsfall für ein Cast-Kontrukt liegt vor, wenn ein Verweis auf die Klasse A an einen Verweis auf die Unterklasse B zugewiesen werden soll:
  Point p;
  Square s;

  // Zuweisung eines Exemplars p von Square an s;
    s = (Square)p;
Die letzte Beispiel wirft natürlich die Frage auf, was geschieht, wenn p zur Laufzeit eben nicht auf ein Exemplar von Square oder eine Unterklasse von Square verweist, sondern auf ein Exemplar von Point. Um die Problematik ungültiger Typumwandlungen zu lösen, geht Java in zwei Stufen vor: Der kritischste Fall ist der letzte, nämlich die Auslösung einer Exception. Aber auch gegen diesen Fall kann man sich absichern. Hierzu stellt Java den Operator instanceof zur Verfügung.


 Inhaltsverzeichnis   Auf Ebene Zurück   Seite Zurück   Seite Vor   Auf Ebene Vor   Eine Ebene höher   Index

Copyright © 2002 dpunkt.Verlag, Heidelberg. Alle Rechte vorbehalten.