package accesslevelmodifiers;
public class AccessLevelModifiers {
public static void main(String[] args) {
Parent parent =new Parent();
Subclass subclass = new Subclass();
parent.go();
subclass.go();
System.out.println("===========");
subclass.setNumberPu(3);
parent.go();
subclass.go();
}
}
public class Parent {
public int NumberPu=100;
public void go(){
System.out.println(NumberPu);
}
}
class Subclass extends Parent{
public void setNumberPu(int NumberPu) {
super.NumberPu = NumberPu;
}
}
它成功地建立並運行;但結果是爲什麼我不能用這個程序重新分配父變量?
100
100
===========
100
3
我很困惑的兩件事情。 1.爲什麼我可以在子類中使用super.NumberPu?我的意思是如果我寫
class Subclass extends Parent{
super.NumberPu = 3;
}
IDE會說找不到符號。
- 我使用超級,所以我認爲NumberPu在父級的值將被分配爲3,但相反,它是分配的子類中的一個。誰能告訴我發生了什麼事?超級怎麼樣。成了這個。 ? 非常感謝!
你認爲你在這裏有多少物體? –
我有兩個實例父和子類在這裏,我有父對象NumberPu(int類型)和子類中NumberPu(int類型)兩個對象。我對麼? – Oscar
你不是。這個'new Parent()'創建一個類型爲'Parent'的對象。這個「新的Subclass()」創建一個類型爲「Subclass」的對象。這兩個對象都可以訪問自己的'NumberPu'字段。 –