Java抽象类和重写变量

时间:2014-10-07 00:57:07

标签: java override 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 {
    private final Enumeration = e.A;
}

这里我得到一个编译器警告,表示该值从未使用过。

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

这不可能吗?

1 个答案:

答案 0 :(得分:3)

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

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);
    }
}