klassen2:casting:aufgabe12:loesungen:start
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
— | klassen2:casting:aufgabe12:loesungen:start [2024/08/31 10:03] (aktuell) – angelegt - Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | == Aufgaben: == | ||
+ | - Entferne das Kommentarzeichen %%//%% am Beginn der Zeile 6 bzw. 10. Welche Fehlermeldung zeigt der Compiler an? Warum tut er das? | ||
+ | - Nach Zeile 10 wird folgendes Programm ergänzt: | ||
+ | <code learnj> | ||
+ | Katze k1 = h; | ||
+ | | ||
+ | </ | ||
+ | sind diese Anweisungen zulässig? Falls " | ||
+ | |||
+ | == 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(); |