Benutzer-Werkzeuge

Webseiten-Werkzeuge


klassen2:casting:aufgabe12:loesungen:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
klassen2:casting:aufgabe12:loesungen:start [2021/02/28 17:38] – angelegt Martin Pabstklassen2:casting:aufgabe12:loesungen:start [2021/12/29 11:29] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 1: Zeile 1:
-== Aufgabe 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; 
 +   h.schreibeName(); 
 +</code> 
 +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 Compiler zeigt folgenden Fehler an: \\ 
 "Der Typ besitzt keine Methode mit dem Bezeichner belle." "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. 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.
  
-== Aufgabe 2: ==+== Lösung zu Aufgabe 2: ==
 Katze k1 = h;  \\  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. 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(). 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.1614530305.txt.gz · Zuletzt geändert: 2021/12/29 11:29 (Externe Bearbeitung)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki