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会说无法找到符号。
答案 0 :(得分:0)
此处有两个不同的对象,因此当您更改其中一个对象的数量时,另一个不会因为无关
Parent parent =new Parent();
Subclass subclass = new Subclass();
了解您如何在此处使用new
? new
运算符通过为新对象分配内存并返回对该内存的引用来实例化一个类。所以你有两个不同的记忆,完全不相关。
答案 1 :(得分:0)
super
是一种在模糊不清的情况下引用超类中的字段的方法,this
是引用当前实例,因此它们处于两个不同的级别。