klassen2:casting:start
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungNächste ÜberarbeitungBeide Seiten der Revision | ||
klassen2:casting:start [2021/02/28 17:38] – [1.Aspekt: Zuweisung des Objekts einer Unterklasse] Martin Pabst | klassen2:casting:start [2021/04/18 09:28] – Martin Pabst | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Casting und der Operator instanceof ====== | ====== Casting und der Operator instanceof ====== | ||
+ | |||
+ | {{ youtube> | ||
+ | |||
Da Variablen vom Datentyp einer Oberklasse auch auf Objekte der Unterklasse zeigen können, ergeben sich Situationen, | Da Variablen vom Datentyp einer Oberklasse auch auf Objekte der Unterklasse zeigen können, ergeben sich Situationen, | ||
Zeile 6: | Zeile 9: | ||
< | < | ||
- | <div class=" | + | <div class=" |
<script type=" | <script type=" | ||
Zeile 33: | Zeile 36: | ||
< | < | ||
- | <div class=" | + | <div class=" |
<script type=" | <script type=" | ||
Hund h = new Hund(" | Hund h = new Hund(" | ||
Zeile 268: | Zeile 271: | ||
== Aufgaben == | == Aufgaben == | ||
- | | + | 3. Nimm in Zeile 8 das Casting weg, schreibe also '' |
- | | + | 4. Wenn wir ungerechtfertigt casten, vertraut uns der Compiler dann? Probiere es aus, indem Du die Zeile 5 ersetzt durch '' |
- | | + | 5. Verändert das Casten durch den Term '' |
- | + | \\ | |
- | <hidden Lösungen> | + | [[.aufgabe345:loesungen:start|Lösungen]] |
- | == Aufgabe 3: == | + | |
- | Der Compiler meldet: "Der Term vom Typ Tier kann der Variable vom Typ Hund nicht zugewiesen werden.". Einer Variable einer Oberklasse können Objekte einer Unterklasse zugewiesen werden, aber nicht anders herum. | + | |
- | == Aufgabe 4: == | + | |
- | Zur Compilezeit geschieht nichts, der Computer " | + | |
- | == Aufgabe 5: == | + | |
- | Das Casten (Katze)t geht nur, wenn t auf ein Objekt der Klasse Katze oder einer Unterklasse davon zeigt. Dieses Objekt wird beim Casten **nicht** verändert, sondern **ist** schon ein Katze-Objekt! | + | |
- | </ | + | |
==== 3. Aspekt: instanceof ==== | ==== 3. Aspekt: instanceof ==== | ||
Oft kann eine Variable an einer Stelle des Programms zu verschiedenen Zeiten verschiedene Objekte enthalten, so dass wir im Programm flexibel darauf reagieren müssen. Für diesen Zweck gibt es den Operator '' | Oft kann eine Variable an einer Stelle des Programms zu verschiedenen Zeiten verschiedene Objekte enthalten, so dass wir im Programm flexibel darauf reagieren müssen. Für diesen Zweck gibt es den Operator '' |
klassen2/casting/start.txt · Zuletzt geändert: 2021/12/29 11:29 von 127.0.0.1