EIDI-Crashkurs 2020 › Zusatzaufgabe: Polymorphie mit Attributen
- Dieses Thema hat 5 Antworten und 1 Teilnehmer, und wurde zuletzt aktualisiert vor 4 Jahren, 9 Monaten von Stefan Berktold.
-
AutorBeiträge
-
Stanislav
Hallo Stefan,
kannst du bitte , wenn du Zeit hast, Schritt für Schritt ( mit Erklärung warum usw. ) noch mal die Objektdiagramm zu der Zusatzaufgabe für Polymorphie mit Attributen uns zeigen ? Es wäre mega hilfreich, weil ich irgendwie nicht darauf komme und bin nicht sicher, ob ich das richtig verstanden hab .. .
Vielen Dank !
StanislavHey, Stefan
wäre auch mega schön ,wenn du Photo/Erklärung zu der Objektdiagramm von der Zusatzaufgabe: Polymorphie mit parametrisierten Klassen hochlädst.
Vielen Dank !
Ich habe jetzt zusätzlich zu den Lösungen noch Diagramme hinzugefügt. Unter den Pfeilen steht außerdem, wegen welchem Statement der jeweilige Pfeil eingezeichnet werden musste. Die Statements sind farbig hinterlegt, sodass du erkennen kannst, durch welches Statement welches Objekt erzeugt wurde. Für ausführlichere Erklärungen habe ich momentan leider zu wenig Zeit, sonst wären die Aufgaben auch im Skript.
StanislavVielen vielen Dank, Stefan. Das reicht perfekt !
TimHallo Stefan, danke für das Diagramm. Ich habe eine Frage dazu: Wenn ich jetzt einen Aufruf b.a.a.(irgend eine Methode) hätte. Woher weis ich dann, welches a ich nehmen muss? Das a welches dynamisch/statisch BC oder das a welches dynamisch/statisch AB ist? Hoffe ich habe mich nicht zu umständlich ausgedrückt! Danke dir schonmal!!!
Wenn du
b.a.a.foo()
hättest, dann benötigst du den statischen und dynamischen Typ vonb.a.a
, um die Methodefoo()
aufzurufen. Dazu gehen wir von links nach rechts:b
ist statischB
und dynamischB
, also suchen wir in unseremB
-Objekt erstmal ein Attributa
, umb.a
zu bestimmen. Dieses Attributa
muss ausB
(oder einer Oberklasse vonB
) kommen, welches wir hier finden (das ist das einzige a in demB
-Objekt).b.a
ist somit statischB
, dynamischC
(das obere der beidenC
s). Wir suchen also in dem oberenC
-Objekt ein Attributa
, umb.a.a
zu bestimmen. Dieses Attributa
muss ausB
(oder einer Oberklasse vonB
) kommen, welches wir hier finden – das ist das Attributa
A. Dasa
C sehen wir nicht, da der statische TypB
ist. Der statische Typ vonb.a.a
ist somitB
, der dynamischeC
(das untere der beiden). -
AutorBeiträge