我在這裏有一個超級和一個子類,我試圖學習向上註解。爲什麼這個數據成員在註冊期間不可訪問?
class Demo1{
int x=10;
void show(){
System.out.println(this.x);
System.out.println(this.s);
}
}
和子類:
class Demo2 extends Demo1{
int ashish=200;
String s="Nana";
public static void main(String... args){
Demo1 d=new Demo2();
d.show();
}
}
在這裏,我試圖打印String s
。爲什麼它顯示變量不存在的編譯錯誤? 據我所知,在上傳過程中,創建的對象實例擁有子類的所有數據成員,並且其引用被賦予父類變量,那麼爲什麼this
不引用Demo2的數據成員?
如果沒有Demo2類或'upcast',這將無法編譯 - 爲什麼? *相同*理由成立。 – user2864740