+---------------------------+ +---------------------------------+
| LedDisplay | | TextDisplay |
+---------------------------+ +---------------------------------+
| | | - color:farbe |
+---------------------------+ +---------------------------------+
| + anzeigen(float):void | | + anzeigen(float):void |
+---------------------------+ | + setSchriftfarbe(farbe):void |
+---------------------------------+
Wie schon gesagt ich würde hier anzeigen nicht auf float beschränken, was ist z.b. wenn du später einmal den Operator ebenfalls anzeigen lassen möchtest oder die komplette Rechnung: zahl1 operator zahl2. Die einzige Gemeinsamkeit dürfte sein, dass sich der Parameter zu einem String konvertieren läßt (wenn man davon ausgeht dass du keine Grafiken auf dem display darstellen möchtest)
Geht das so ohne weiteres, dass die eine Kind-Klasse andere Attribute und Methoden hat als die andere? Muss ich dann noch was in der Eltern-Klasse ergaenzen?
Das spielt keine Rolle, nur bei den Methoden wird es kniffelig. Wenn setSchriftfarbe aufrufst und du hast ein LedDisplay erhälst du einen Fehler. Wie man das am sinnvollsten vermeidet wüßte ich auch nich genau, ich würde vermutlich in der abstrakten Klasse eine setConfig() Funktion deklarieren, die ein Datenfeld (evtl. ein struct) übergibt, wo sich dann die jeweilige konkrete Klasse ihre Angaben rauszieht. Oder eine setProperty Funktion, die dann überprüft ob die Eigenschaft existiert und gesetzt werden kann.
Struppi.
Javascript ist toll (Perl auch!)