"Grundkurs Programmieren in Java - (8. Auflage, 2018)"
2001-2018, Carl Hanser Verlag
Lösungsvorschlag zu Aufgabe 7.5 (Version 3.0)
(c) 2001-2018 D. Ratz, D. Schulmeister-Zimolong, D. Seese, J. Wiesenberger
Programmausgabe:
Katze
Fuchs
Maus
Maus
Ratte
Hund
Erklärung:
Die gegebenen Klassen lassen sich mit einem UML-Klassendiagramm wie folgt darstellen:
Die pfeillosen Linien zwischen Hund und Maus bzw. Ratte ist eine sog. Assoziation,
sie soll hier die "hat ein"-Beziehung darstellen.
Es ergibt sich folgender Ablauf:
- Der Konstruktor der Superklasse wird aufgerufen. Dies wird rekursiv wiederholt,
so dass der Konstruktor der Klasse Katze zuerst ausgeführt wird
- Die Konstruktoren der Attribute werden in der Reihenfolge ihrer Deklaration
aufgerufen, also zuerst Maus und dann Ratte (da Ratte aber
von Maus erbt, wird vor dem eigentlichen Ratte-Konstruktor
erst nochmals der Maus-Konstruktor aufgerufen.
- Zuletzt wird der Konstruktor der abgeleiteten Klasse (also Hund) aufgerufen
Quelltext (alle 5 Klassen in einer Datei): Hund.java