Weitere Hinweise zu Aufgabe 9
- Gemeinsame Oberklasse ist Figur, Stammbaum:
- Alle vier Methoden sind für alle Figuren sinnvoll,
können aber nicht in Figur implementiert werden.
Daher ist Figur abstrakt. Da es überhaupt keine
von Figur zu erbenden Dinge gibt, kann es als
Schnittstelle eingeführt werden.
- Alle vier Operationen sind auch bei Punkt sinnvoll, vor allem zur Implementierung der
Operationen in den Figuren. Ob man Punkt
deswegen in den Kreis der Figuren aufnimmt, ist an dieser Stelle sicher
Geschmackssache. In Aufgabe 11 kommt aber
die Methode draw für alle Figuren hinzu. Hier
zeigt sich, dass Punkt nur ein Bestandteil einer
Figur ist: er hat keine draw-Methode. Daher wird er hier als unabhängig von
Figur gesetzt.
- Alle Funktionen von Dreieck und
Quadrat können auch direkt in Polygon implementiert werden, indem man sie als Spezialfälle
von Polygon betrachtet.
- Um bei toString einen Namen
("Quadrat", "Polygon") benutzen zu können, wird eine Methode getName() in Polygon eingeführt und in toString verwendet. Quadrat und
Dreieck überschreiben einfach die geerbte
Funktion.
- Alles weitere kann direkt den Quellen entnommen werden: