Java抽象类和重写变量
我遇到了一个我无法解决的问题。假设我们有超类A: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
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
看起来非常聪明。顺便说一句,这是一个警告
,这意味着您可以这样做。您是说您的子类继承了一个私有
变量吗?字段不“重写”,只有方法可以。