Interface
Veränderte Anforderungen
Die Anforderungen an das Spiel werden folgendermaßen erweitert und geändert:
- Es soll nun auch Erdbeeren geben, die gegessen werden können.
- Erbeeren geben mehr Punkte je älter sie sind, da sie dann größer werden. (Sie müssen dabei nicht unbedingt grafisch größer werden). Ab einem bestimmten Alter ist eine Erdbeere nicht mehr gut und verschwindet automatisch.
- Tiere geben nicht mehr nur einen Punkt, sondern mehrere. Das genaue Verhalten kann für jede Tierart unterschiedlich sein. Beispielsweise kann die Punktzahl mit dem Alter eines Tieres variieren, für ein Tier zufällig aber fest sein, oder die Punktzahl ist für jedes Objekt der Klasse gleich.
- Der Nährwert aller essbaren Objekte soll über eine Methode
getNaehrwert()
abgefragt werden können.
Aufgabe 1 - Essbar
Ergänze die Klasse Erdbeere
im Klassendiagramm.
Da eine Erdbeere nicht beweglich ist, macht es Sinn diese als Unterklasse von Actor
zu definieren.
Um alle essbaren Objekte zusammenzufassen, macht es Sinn eine Klasse Essbar
einzuführen.
Ordne die Klasse Essbar
, in der die Methode getNaehrwert()
definiert ist, in Dein Klassendiagramm ein.
Welches Problem ergibt sich?
Interface
Um das Problem, das sich hier ergibt, zu lösen, kannst Du ein Interface nutzen. Was Interfaces sind und wie man diese nutzt, kannst Du auf der Seite Fachkonzept - Interface lesen.
Aufgabe 2 - Interface Essbar
Erweitere Dein Klassendiagramm um ein Interface Essbar
mit der Methode getNaehrwert()
.
Ergänze außerdem die Klasse Erdbeere
, die Essbar
implementiert.
Aufgabe 3 - Implementierung
Ergänze die Implementierung und passe sie an. Du wirst dabei auf Probleme stoßen, die Du mit Typecasts und dem
instanceof
-Operator lösen kannst. Was es damit auf sich hat, kannst Du im Abschnitt
Fachkonzept - Typumwandlung nachlesen.
Aufgabe 4 - Eigene Ideen
Mit dem nun vorhandenen Wissen kannst Du Dein Spiel flexibel erweitern und Deine eigene Variante des Spiels erstellen. Ideen dazu sind:
- Weitere Tierarten, die evtl. nicht essbar sind.
- Weitere Gegner außer den Tierschützern. Die Gegner könnten z.B. gefährliche Tiere sein.
- ...
Sei kreativ und entwickle Deine eigene Variante des Spiels.