Nein. Valentin
und Feiertag
sind Geschwisterklassen.
Da sie nicht durch Vererbung verwandt sind, kann eine Referenzvariable des einen Typs
nicht mit einem Objekt des anderen Typs verwendet werden.
Die Kartenhierarchie wird durch das Hinzufügen zweier neuer Klassen erweitert:
Eine KinderGeburtstag
-Karte für Kinder.
Diese Karte wird die Zeile "Was bist du gross geworden!" zum gewöhnlichen Geburtstagsgruß hinzufügen.
Eine ErwachsenenGeburtstag
-Karte für Erwachsene.
Diese Karte wird die Zeile "Du siehst so jung aus wie immer!" zum gewöhnlichen Geburtstagsgruß hinzufügen.
Die Klasse Geburtstag
ist die Superklasse für diese zwei neuen Klassen. Die Abbildung lässt die zwei anderen Klassen aus, aber nehmt an, dass sie immer noch definiert sind.
Jede der neuen Klassen würde gewöhnlich die gruss()
Methode von
Geburtstag
erben.
Aber wir wollen diese Methode mit einer spezielleren Methode in jeder der neuen Klassen überschreiben.
Hier ist die Klassendefinition von Geburtstag
aus dem vorherigen Kapitel:
class Geburtstag extends Karte { int alter; public Geburtstag ( String e, int jahre ) { empfaenger = e; alter = jahre; } public void gruss() { System.out.println("Dear " + empfaenger + ",\n"); System.out.println("alles Gute zum " + alter + ". Geburtstag.\n\n"); } }
Hier ist die Klassendefinition von KinderGeburtstag
:
class extends { public ( String e, int jahre ) { ( e, jahre ); } public void gruss() { (); System.out.println("Was bist du gross geworden!!\n"); } }
Wir füllen die Lücken aus, aber zuvor Überprüfen wir die Anforderungen und das Hierarchiediagramm.