請解釋一下爲什麼當我編譯這段代碼的結果是0?怎麼會這樣 ?方法繼承
class Parentt {
int x = 0;
public void printX() {
System.out.println(x);
}
}
class Child1 extends Parentt {
int x = -1;
}
public class Foo {
public static void main(String[] args) {
new Child1().printX();
}
}
因爲你在陰影'Parentt' –
擊敗我的變量。通常編譯不會返回一個數字。但是如果你執行它,你將會從Parentt打印x的值,因爲Child1有它自己的副本(因爲你再次聲明它),這是從Parentt不可見的。 –