Java抽象类和重写变量

Java抽象类和重写变量,java,overriding,abstract-class,Java,Overriding,Abstract Class,我遇到了一个我无法解决的问题。假设我们有超类A: public enum Enumeration { A, B, C; } public abstract Class A { private Enumeration e; public void someMethod { // do something here with 'e'. } } 现在让我们假设我们有一个B类 public Class B extends A { pr

我遇到了一个我无法解决的问题。假设我们有超类A:

public enum Enumeration {
  A, B, C;
}

public abstract Class A {
     private Enumeration e;

     public void someMethod {
           // do something here with 'e'.
     }
}
现在让我们假设我们有一个B类

public Class B extends A {
    private final Enumeration = e.A;
}
在这里,我得到一个编译器警告,该值从未使用过

我只想在类A中定义方法,因此我必须定义变量。但是我想在子类中给变量一个新的固定值


这不可能吗?

字段不能被覆盖。如果要将特定枚举实例分配给类,请使用构造函数:

public abstract Class A {
     private final Enumeration e;

     protected A (Enumeration e) {
         this.e = e;
     }

     public void someMethod {
           // do something with 'e'.
     }
}

public Class B extends A {
    public B() {
        super(Enumeration.A);
    }
}

private final Enumeration=e.A缺少名称。
私有最终枚举=e.a
看起来非常聪明。顺便说一句,这是一个
警告
,这意味着您可以这样做。您是说您的子类继承了一个
私有
变量吗?字段不“重写”,只有方法可以。