有人可以解釋爲什麼該函數打印超級變量而不是從子類變量?在Java中不能覆蓋類變量?重寫變量Java繼承的說明
class A {
int i = 1;
int fun() {
return i;
}
}
class B extends A {
int i = 2;
}
class Main {
public static void main(String[] args) {
System.out.println(new B().fun());
}
}
此打印出1
,而不是2
。
您只能覆蓋方法,而不是字段。 –
becuase'fun()'從A擴展到B,並且您正在調用具有值1的fun方法。並且字段不能被覆蓋只有方法可以 – Lokesh
你的意思是'覆蓋',而不是'覆蓋',並且沒有重寫Java中的變量。 – EJP