Hallo, Ich bin Einsteiger bei Java, habe aber schon ein wenig Vorkenntnisse, auch was Vererbung angeht (c#).
Nun habe ich eine Schulaufgabe, ich muss das Spiel "Monopoly" in Java programmieren.
Nun habe ich angefangen die Klassen zu erstellen mit Vererbung.
So hat ein Monopoly 40 Felder, jedes Feld hat einen Namen. Einige davon sind Grundstücke, die man für einen bestimmten Preis erwerben kann, die ggf. einen Besitzer haben etc. Diese Wiederrum kann man aufteilen in Straßen/Ländern (je nach Monopoly edition), Bahnhöfen/Flughäfen und Werken (Diese Werke wo man je nach Würfelzahl bezahlen muss).
Nun habe ich auch dementsprechend die Verbung gemacht:
Klasse 1: Felder
Klasse 2: Grundstuecke extends Felder
Klasse 3: Strassen extends Grundstuecke
Klasse 4: Bahnhof extends Grundstuecke
Klasse 5: Werke extends Grundstuecke
Es gibt zwar noch ganz andere Felder, diese sind aber nicht notwendig für mein Problem.
Nun habe ich Variabeln (private) mit Getter/Setter erstellt. Nun soll Grundstuecke die Variabeln von Felder erben und die anderen 3 Subklassen die Variabeln von Grundstuecke und Felder.
folgend erstelle ich beispielweise die Felder:
Wenn ich nun den Besitzer von diesen Feldern abfragen möchte, welche als Variable in der Klasse Grundstücke deklariert ist und mit dem Getter "Getbesitzer();" abgefragt werden kann, würde ich das so machen:
Das Problem ist aber, das ich kein Zugriff auf die Variablen und Methoden der Klasse Grundstuecke habe, ich habe auch keinen Zugriff auf die Variablen der Klasse Strassen bei Feld[0], der Klasse Bahnhof bei Feld[1] und der Klasse Werke bei Feld[2]. Nur auf die Variablen und Methoden der Klasse Felder habe ich Zugriff. Um nun Zugriff auf die entsprechenden Variablen und Methoden zu bekommen, muss ich es so schreiben:
Nun meine Frage: muss ich tatsächlich jedesmal die entsprechende Klasse davor schreiben oder gibt es eine andere Möglichkeit direkten Zugriff zu bekommen.
Nun habe ich eine Schulaufgabe, ich muss das Spiel "Monopoly" in Java programmieren.
Nun habe ich angefangen die Klassen zu erstellen mit Vererbung.
So hat ein Monopoly 40 Felder, jedes Feld hat einen Namen. Einige davon sind Grundstücke, die man für einen bestimmten Preis erwerben kann, die ggf. einen Besitzer haben etc. Diese Wiederrum kann man aufteilen in Straßen/Ländern (je nach Monopoly edition), Bahnhöfen/Flughäfen und Werken (Diese Werke wo man je nach Würfelzahl bezahlen muss).
Nun habe ich auch dementsprechend die Verbung gemacht:
Klasse 1: Felder
Klasse 2: Grundstuecke extends Felder
Klasse 3: Strassen extends Grundstuecke
Klasse 4: Bahnhof extends Grundstuecke
Klasse 5: Werke extends Grundstuecke
Es gibt zwar noch ganz andere Felder, diese sind aber nicht notwendig für mein Problem.
Nun habe ich Variabeln (private) mit Getter/Setter erstellt. Nun soll Grundstuecke die Variabeln von Felder erben und die anderen 3 Subklassen die Variabeln von Grundstuecke und Felder.
folgend erstelle ich beispielweise die Felder:
Java:
Felder[] Feld = new Felder[40];
Feld[0] = new Strassen();
Feld[1] = new Bahnhof();
Feld[2] = new Werke();
Wenn ich nun den Besitzer von diesen Feldern abfragen möchte, welche als Variable in der Klasse Grundstücke deklariert ist und mit dem Getter "Getbesitzer();" abgefragt werden kann, würde ich das so machen:
Java:
Feld[0].Getbesitzer();
Feld[1].Getbesitzer();
Feld[2].Getbesitzer();
Das Problem ist aber, das ich kein Zugriff auf die Variablen und Methoden der Klasse Grundstuecke habe, ich habe auch keinen Zugriff auf die Variablen der Klasse Strassen bei Feld[0], der Klasse Bahnhof bei Feld[1] und der Klasse Werke bei Feld[2]. Nur auf die Variablen und Methoden der Klasse Felder habe ich Zugriff. Um nun Zugriff auf die entsprechenden Variablen und Methoden zu bekommen, muss ich es so schreiben:
Java:
((Grundstuecke)Feld[0]).Getbesitzer();
Nun meine Frage: muss ich tatsächlich jedesmal die entsprechende Klasse davor schreiben oder gibt es eine andere Möglichkeit direkten Zugriff zu bekommen.