在一個類中,與超類中的字段具有相同名稱的字段隱藏了超類的字段。Java中的隱藏字段繼承
public class Test {
public static void main(String[] args) {
Father father = new Son();
System.out.println(father.i); //why 1?
System.out.println(father.getI()); //2
System.out.println(father.j); //why 10?
System.out.println(father.getJ()); //why 10?
System.out.println();
Son son = new Son();
System.out.println(son.i); //2
System.out.println(son.getI()); //2
System.out.println(son.j); //20
System.out.println(son.getJ()); //why 10?
}
}
class Son extends Father {
int i = 2;
int j = 20;
@Override
public int getI() {
return i;
}
}
class Father {
int i = 1;
int j = 10;
public int getI() {
return i;
}
public int getJ() {
return j;
}
}
有人可以解釋我的結果嗎?
根據你的理解隱藏和繼承是什麼意思;你爲什麼認爲價值觀是他們的方式?你應該可以爲自己解決這個問題。 –
這是功課嗎? –
兒子不是隱藏變量的父類型 – jsj