Benutzer-Werkzeuge

Webseiten-Werkzeuge


klassen2:casting:aufgabe12:loesungen:start
Aufgaben:
  1. Entferne das Kommentarzeichen // am Beginn der Zeile 6 bzw. 10. Welche Fehlermeldung zeigt der Compiler an? Warum tut er das?
  2. Nach Zeile 10 wird folgendes Programm ergänzt:
   Katze k1 = h;
   h.schreibeName();

sind diese Anweisungen zulässig? Falls "nein": Warum nicht? Probiere sie aus, indem Du sie ins Beispiel oben einfügst!

Lösung zu Aufgabe 1:

Der Compiler zeigt folgenden Fehler an:
"Der Typ besitzt keine Methode mit dem Bezeichner belle." Das tut er, weil t eine Variable vom Typ Tier ist und die Klasse Tier keine Methode belle besitzt. Dass das Objekt, auf das t zeigt, ein Hund-Objekt ist (und sehr wohl eine Methode belle besitzt), weiß der Compiler nicht.

Lösung zu Aufgabe 2:

Katze k1 = h;
ist nicht zulässig, da h eine Variable der Klasse Hund ist. Diese kann nicht nach Katze gecastet werden, da Katze keine Unterklasse von Hund ist. h.schreibeName(); ist zulässig, da h eine Variable der Klasse Hund ist. Diese erbt von der Klasse Tier und besitzt daher eine Methode schreibeName().

klassen2/casting/aufgabe12/loesungen/start.txt · Zuletzt geändert: 2021/12/29 11:29 von 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki