我有一个抽象类,它有一个静态最终变量和一个定义引用该变量的实例方法,我有一个非抽象类,它扩展了该类并覆盖了变量:
AClass.java
public abstract class AClass {
static final int number = 1;
public void meth(){
System.out.println(number);
}
}
IClass.java
public class IClass extends AClass{
static final int number = 2;
}
我希望meth()
打印实际对象的类number
,但是当我用IClass
对象调用它时,我总是{{1}不管它是如何定义的:
1
我添加了一个覆盖,将超级电话调用AClass o1 = new IClass();
o1.meth(); // 1
IClass o2 = new IClass();
o2.meth(); // 1
new IClass().meth(); // 1
,但这没有帮助:
IClass.java
IClass
我还在public class IClass extends AClass{
static final int number = 2;
@Override
public void meth(){
super.meth();
}
}
中尝试了this
:
AClass.java
meth()
这可以在没有完全重写 IClass.java 中的方法的情况下完成吗?