在java中初始化子类(子类)中的静态最终变量

Dan*_*ini 5 java variables static final subclass

我有一堂这样的课:

public abstract class A {
    public static final int FIELD;
    // some methods
}
Run Code Online (Sandbox Code Playgroud)

我想在子类中初始化变量FIELD。我的意思是这样的:

public class B extends A {
    FIELD = 5;
}
Run Code Online (Sandbox Code Playgroud)

编辑 实际上我有多个扩展 A 的类,它们都有变量 FIELD 但具有不同的值;所以我发现的方法是重构变量FIELD并在超类中声明它。还有其他解决方案吗?有可能有这样的东西吗?感谢您的帮助。

Dan*_*ini 5

关键是超类的子类没有超类中声明的静态字段的副本,并且超类在它们之间共享该静态字段;因此无法在不同的子类中拥有具有不同值的静态变量。因此,我将在所有子类中声明变量 FIELD。
我在评论中从@LenceJava 那里得到了所有这些。谢谢@LanceJava。