gpt4 book ai didi

java - 如何定义扩展父抽象的子静态类?

转载 作者:行者123 更新时间:2023-12-02 04:37:52 25 4
gpt4 key购买 nike

我需要一个父公共(public)抽象类,它将有多个子公共(public)静态类。我只需要一个 Weapon 类的实例,一些静态类 Bow、Sword< 等,它们扩展父级并且也只能存在于一个实例中(至少我需要能够获取它们的静态字段)。怎样做才正确呢?

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 ); 。这是否意味着我无法通过父摘要访问子项?

最佳答案

如果您绝对必须实现此模型,那么您正在考虑嵌套:

public abstract  class Weapon {

public static class Bow extends Weapon {
static String type = "Bow ";
static int hitPointsTaken = 10;
}
}

关于java - 如何定义扩展父抽象的子静态类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10148715/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com