Ich bin ein wenig neu in Java, und ich versuche, ein RPG der Art zu schreiben.Abstrakte Methoden ohne abstrakte Klassen
Jetzt im Spiel der Spieler Charakter Fähigkeiten haben würde. Diese könnten sehr unterschiedlich sein, von verletzenden Feinden über die Heilung des Spielers bis hin zu vielen anderen Dingen. Es wäre sinnvoll, eine Skill-Klasse mit einer abstrakten applyEffect() -Methode zu erstellen, die für jede bestimmte Fertigkeit definiert wird.
Allerdings kann ich keine abstrakte Klasse mit abstrakten Methoden haben, und jede Fähigkeit sollte ein Objekt der Fähigkeitsklasse sein, also kann sie nicht abstrakt sein. Die offensichtliche Lösung besteht darin, die Skill-Klasse abstrakt zu machen und eine Unterklasse für jede einzelne Fertigkeit zu erstellen, und dann instanziieren, dass in ein Objekt zu verwenden. Dieser Ansatz scheint ein wenig überflüssig. Gibt es sonst noch etwas, was ich in dieser Situation möglicherweise tun könnte?
EDIT: Wenn ich schon dabei bin, wenn ich ein Objekt möchte, das ein einziges Mal mit Standardvariablen angezeigt wird, gibt es eine Möglichkeit, eine Klasse nur für dieses eine Objekt zu erstellen und dann zu instanziieren?
Abstrakte Methoden müssen in einer Unterklasse implementiert werden. Ohne Unterklassen, wie werden Sie sie implementieren? – immibis
Sie benötigen eine abstrakte Skill-Klasse. Jeder Skill- oder Skill-Typ oder was auch immer kann die Skill-Klasse erweitern und eine konkrete applyEffect() -Methode enthalten. – lhoworko
Sie haben Recht, aber ich möchte wissen, ob es einen Workaround gibt. Es scheint überflüssig zu sein, beispielsweise eine DamageSkill1-Unterklasse zu erstellen und dann in einem DamageSkill1-Objekt zu instanziieren, da letzteres nur in einer Instanz erscheint. Es schlägt den Zweck der Klasse. – Sotos