複数の子パブリック静的クラスを持つ親パブリック抽象クラスが必要です。Weapon クラスのインスタンスが 1 つだけ必要です。Bow、Sword< などのいくつかの静的クラスは、親を拡張し、1 つのインスタンスにしか存在できません (少なくとも静的フィールドを取得できる必要があります)。適切に行う方法は?
public abstract class Weapon {
...
}
public static class Bow extends Weapon {
static String type = "Bow ";
static int damage = 10;
}
public static class Sword extends Weapon {
static String type = "Sword";
static int damage = 10;
}
取得エラー:
Illegal modifier for the class Sword; only public, abstract & final are permitted
静的を削除したところ、機能しました:
public final class Sword extends Weapon {
static String type = "Sword";
static int hitPointsTaken = 10;
}
これはコンパイルできますSystem.out.println( Sword.type );
が、これはコンパイルできませんSystem.out.println( Weapon.Sword.type );
。親抽象を介して子にアクセスできないということですか?