Benutzer-Werkzeuge

Webseiten-Werkzeuge


klassen2:casting:aufgabe345:loesungen:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
klassen2:casting:aufgabe345:loesungen:start [2021/02/28 17:40] – angelegt Martin Pabstklassen2:casting:aufgabe345:loesungen:start [2021/12/29 11:29] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 1: Zeile 1:
-== Aufgabe 3: ==+== Aufgaben == 
 +3. Nimm in Zeile 8 das Casting weg, schreibe also ''Hund h2 = t;''. Was passiert? Warum? \\ \\  
 +4. Wenn wir ungerechtfertigt casten, vertraut uns der Compiler dann? Probiere es aus, indem Du die Zeile 5 ersetzt durch ''((Katze)t).miaue();''. Was passiert? Warum? \\ \\  
 +5. Verändert das Casten durch den Term ''(Katze)t'' das Objekt, auf das ''t'' zeigt von einem ''Tier''-Objekt zu einem ''Katze''-Objekt? Begründe Deine Antwort! \\ \\  
 + \\  
 + 
 + 
 +== Lösung zu 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. 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: ==+== Lösung zu Aufgabe 4: ==
 Zur Compilezeit geschieht nichts, der Computer "vertraut" uns. Der Fehler wird aber zur Laufzeit entdeckt. Der Computer meldet dann, dass ein Objekt vom Typ Hund nicht nach Katze gecastet werden kann. Zur Compilezeit geschieht nichts, der Computer "vertraut" uns. Der Fehler wird aber zur Laufzeit entdeckt. Der Computer meldet dann, dass ein Objekt vom Typ Hund nicht nach Katze gecastet werden kann.
-== Aufgabe 5: ==+== Lösung zu 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! 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!
  
klassen2/casting/aufgabe345/loesungen/start.1614530401.txt.gz · Zuletzt geändert: 2021/12/29 11:29 (Externe Bearbeitung)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki