erben, habe ich das folgende Klassendiagramm. Ich suchte nur nach einer Anleitung, wie ich diese Prüfungsfrage angehen konnte, da ich mir nicht sicher bin, ob ich Recht hatte. Ich habe keine Lösungen gehofft, dass jemand mit mehr Erfahrung dort seine Meinung geben könnte.Sollte diese Klasse direkt von der Basisklasse oder von der Unterklasse
TASK 1: eine Unterklasse
MonsterEater
genannt hinzufügen. Objekte dieser Klasse sind wiePieEaters
, aber zusätzlich hat dieMonsterEater
ein Attribut mit dem NamennumPieEatersEaten
vom Typ Integer und eine MethodeeatPieEater
mit der Signatur eines Arguments mit dem NamenaGrid
, das vom TypGrid
ist.Seit
MonsterEater
hat eine Menge von der gleichen Verhaltensweisen wiePieEater
ich von derPieEater
Klasse, die erben machen beschlossen, während sie das zusätzliche Verhalten geben (Attribute und Methoden)TASK 2: Fügen Sie eine Unterklasse genannt
MagicPie
. Objekte dieser Klasse sind wiePies
zusätzlich aber dieMagicPies
haben ein Attributvisible
vom Typ boolean genannt und Methoden erscheinen und verschwinden beide mit Unterschrift ohne Argumente und Rück nichtsich
MagicPie
vererbenPie
gemacht. Habe ihm die Attribute und Methoden gegeben.TASK 3: Überschreiben Sie die Anzeigemethode in allen konkreten Klassen in Ihrer Vererbungshierarchie.
Dazu habe ich gerade die Methode
display()
zu allen Klassen hinzugefügt, die von der BasisklasseGameElement
erben.Ich wurde auch gebeten, eine Zuordnung hinzuzufügen, so dass nur
MonsterEaters
MagicPies
essen kann (die Klasse i vonPie
ableiten Made) so habe ich eineeats
Vereinigung vonMonsterEater
zuMagicPie
letzte Aufgabe gemacht.: Listen Sie alle Funktionen der Klassen
MonsterEater
undMagicPie
auf. Ermöglicht das von Ihnen erstellte UML-DiagrammMonsterEaters
Pies
zu essen. Erkläre deine Antwort.Ich war nicht sicher über diese,
MonsterEater
erbt von derPieEater
Klasse, die einen Kuchen essen kann, aber ich bin mir nicht sicher, ob das bedeutetMonsterEater
kann. Ich bin mir auch nicht ganz sicher, ob meine von mir erstellte Vererbungshierarchie überhaupt richtig ist. Jede Einsicht/Anleitung würde sehr geschätzt werden.
Ja das macht Sinn, danke. Obwohl MonsterEater die eatpie() -Methode hat, kann die Tatsache, dass es keine Essensassoziation zu Pie hat, annehmen, dass es keinen Kuchen essen kann. Was wären die Features? die Dinge, die es tun kann? –
Und am Ende wurde ich gebeten, in Bezug auf die Basisklasse, Unterklasse und Blatt-Klassen zu kennzeichnen, ich verstehe, wie man alles mit Ausnahme der Gitterklasse beschriftet. wäre das eine Basisklasse? –
Das wäre wieder das Design, aber, ohne einen Erben zu haben, ist es eine Blattklasse. Um zu verhindern, dass Unterklassen vorhanden sind, sollte es einen Stereotyp "versiegelt/endgültig" haben. Aber ich denke, jetzt denke ich zu viel über die Implementierung in Sprachen nach. – user4388177