Ich habe ein Paket levels
und Klassen level_default
, level_hard
..., die jeweils einige Methoden wie Load();
, MoveEvent();
, TouchEvent();
...Java-Pass-Klasse als Variablentyp?
ich irgendwie die ausgewählte Level-Klasse in einer Variablen namens sagen lässt myLevel
speichern möchten
So kann ich dann zum Beispiel myLevel.Load();
verwenden, um die Lade-Methode von diesem spezifischen gespeicherten Ebene aufzurufen.
Bisher habe ich Schalter unter Verwendung von Schleifen die gewünschte Methode aus der ausgewählten Ebene zu nennen.
(... case "1": levels.level_default.load(); break; case "2": levels.level_hard.load();
...)
Aber wie kann es so gemacht werden, so kann ich nur die Ebene auswählen, und seine Methoden verwenden, ohne dass die ganze Zeit zu überprüfen, welche Ebene verwende ich anrufen die Methode von dieser Ebene?
Sie können eine Superklasse 'Level' erstellen und die darin enthaltenen Methoden definieren. Dann machen Sie die Unterklassen 'Default',' Hard' ... welche 'Level' erweitern. Dann können Sie ein Objekt von "Level" haben und es initialisieren wie "Level lev = new Hard();" (oder "Default", wie Sie es wollen). Auf diese Weise müssten Sie nur die Methode "lev" aufrufen und die erforderlichen Methoden automatisch aus der jeweiligen Klasse aufrufen. – Hackerdarshi
http://www.oracle.com/technetwork/java/codeconventions-135099.html – Tom
@Hackerdarshi Danke, das funktioniert für mich so weit! – Vepir