Inheritance: Seaworld - JirkaDellOro/EIA2 GitHub Wiki

Vorbereitung

  • Erweitern Sie den Code aus der Vorlesung. Implementieren Sie eine weitere Subklasse von DavidStar, welche zur Darstellung auf die Methode der Superklasse zurückgreift, jedoch ein anderes Bewegungsmuster implementiert. Lassen Sie im Hauptprogramm zusätzlich Objekte dieser Superklasse erzeugen, die mit den anderen erscheinen. Nutzen Sie hierzu die Polymorphie (Vielgestaltigkeit) des Davidsterns, so wie wir das bereits beim Rechteck getan haben. Objekte ihrer Subklasse sind schließlich auch "nur" Davidsterne.
  • Bei Mausklick auf den Canvas soll an der Stelle des Clicks eine neue Instanz einer der drei Klassen erscheinen und in der Folge mit animiert werden. Welche Klasse dabei Verwendung findet, soll zufällig entschieden werden.

Aufgabe

Entwerfen Sie eine Superklasse, von der alle bewegten Objekte ihrer Unterwasserwelt abgeleitet werden können. Refaktorieren Sie die Klassen dieser Objekte derart, dass sie nun sinnvoll Subklassen dieser Superklasse darstellen. Refaktorieren Sie schließlich das Hauptprogramm entsprechend und nutzen Sie dabei die Polymorphie. Alle Objekte sollten nun nur noch in einem Array vom Typ der Superklasse verwaltet werden.
Bei Klick oder Touch in die Unterwasserwelt sollen an der betreffenden Stelle einige Futterflocken entstehen, die langsam zu Boden sinken und dort liegen bleiben.

Konzeption

Zeichnen Sie ein vollständiges Klassendiagramm aller ihrer Klassen inklusive Vererbungsrelationen. Erstellen Sie zudem ein Aktivitätsdiagramm für den Klick/Touch und die Bewegungslogik der Futterflocken.

Produktion

Refaktorieren und erweitern Sie Ihren Code syntaktisch korrekt und unter strenger Berücksichtigung der Stilregeln. Implementieren Sie zudem sinnvolle Konstruktoren!!