我刚刚注意到覆盖方法的行为确实与覆盖字段不同。考虑以下代码段:
public class Bar {
int v =1;
public void printAll(){
System.out.println(v);
printV();
}
public void printV(){
System.out.println("v is " + v);
}
}
public class Foo extends Bar {
int v = 4;
public static void main(String[] args) {
Foo foo = new Foo();
foo.printAll();
}
public void printV() {
System.out.println("The value v is " + v);
}
}
它导致输出:
1
值 v 是 4
所以似乎 bar 中的 printV 方法被 foo.printV 覆盖,而 bar 中的字段 v 没有被覆盖。有谁知道这种差异的原因?
谢谢。