G
Guvnor
Gast
Hallo!
Ich habe ein kleines Problem und komme einfach nicht auf die Lösung, ich hoffe mal es ist nur eine Kleinigkeit.
Und zwar habe ich eine abstrakte Entity-Klasse, und von dieser abgeleitet eine Player- und eine Shot-Klasse. Entity besitzt einen protected int movingSpeed = 70, und dies wird in einer Methode, die ebenfalls bereits in der Entity vollständig implementiert ist, verwendet.
Nun will ich aber diese Variable in den abgeleiteten Klassen anders definieren, und zwar von Anfang an. Aber wenn ich das mache, wird trotzdem die Variable aus der Oberklasse verwendet, da ja auch die entsprechende Methode aus der Oberklasse aufgerufen wird.
Mir fallen zwei Lösungen ein, die ich aber irgendwie unpraktisch finde:
1) die Methode überschreiben - wäre aber sinnlos, da sie exakt gleich aussehen würde
2) den Wert im Konstruktor setzen
Möglichkeit 2) ist eigentlich gar nicht soo übel, aber irgendwie fände ich es halt hübscher, wenn ich die Variable direkt in der Deklaration mit einem Wert belegen kann. Aber es scheint keinen Zugriffspezifizierer dafür zu geben (z.B. statt protected "override" oder sowas).
Nun also meine Frage - gibt es da eine "javamäßig korrekte" Lösung? Oder muß ich es doch per Konstruktor machen?
Vielen Dank schonmal
Guvnor
Ich habe ein kleines Problem und komme einfach nicht auf die Lösung, ich hoffe mal es ist nur eine Kleinigkeit.
Und zwar habe ich eine abstrakte Entity-Klasse, und von dieser abgeleitet eine Player- und eine Shot-Klasse. Entity besitzt einen protected int movingSpeed = 70, und dies wird in einer Methode, die ebenfalls bereits in der Entity vollständig implementiert ist, verwendet.
Nun will ich aber diese Variable in den abgeleiteten Klassen anders definieren, und zwar von Anfang an. Aber wenn ich das mache, wird trotzdem die Variable aus der Oberklasse verwendet, da ja auch die entsprechende Methode aus der Oberklasse aufgerufen wird.
Mir fallen zwei Lösungen ein, die ich aber irgendwie unpraktisch finde:
1) die Methode überschreiben - wäre aber sinnlos, da sie exakt gleich aussehen würde
2) den Wert im Konstruktor setzen
Möglichkeit 2) ist eigentlich gar nicht soo übel, aber irgendwie fände ich es halt hübscher, wenn ich die Variable direkt in der Deklaration mit einem Wert belegen kann. Aber es scheint keinen Zugriffspezifizierer dafür zu geben (z.B. statt protected "override" oder sowas).
Nun also meine Frage - gibt es da eine "javamäßig korrekte" Lösung? Oder muß ich es doch per Konstruktor machen?
Vielen Dank schonmal
Guvnor