【发布时间】:2015-05-31 10:05:05
【问题描述】:
当我尝试运行这段代码时,它给了我 30。谁能解释一下!我知道你不能在 Java 中覆盖静态方法,因为多态和静态不能一起工作。静态方法在类上调用,而不是在实例中。但有人可以进一步解释这个话题。我真的不明白为什么我得到 30 而不是 10。谢谢!
class One {
static int value = 0;
One(){
addValue ();
}
static int addValue () {
return value+=10;
}
int getValue () {
return value;
}
}
class Two extends One {
Two () {
addValue ();
}
static int addValue () {
return value+=20;
}
public static void main(String[] args ) {
One t = new Two ();
System.out.println(t.getValue());
}
}
【问题讨论】: