这是我的第一堂课
public class DigitalDevice {
public int abc = 1;
}
这是我的第二堂课
public class SmartPhone extends DigitalDevice {
SmartPhone() {
abc = 2;
super.abc=3;
DigitalDevice.abc=4;
}
}
在
SmartPhone
类中,当我回忆 abc
时,DigitalDevice
的 abc
是可访问且可更改的,而当我回忆 super.abc
时,DigitalDevice
的 abc 也是可访问且可更改的,但是当我记得 DigitalDevice.abc
,DigitalDevice
的 abc
不可访问和更改,IDE 会给出错误并要求在 abc
类中将 DigitalDevice
设为静态。
在
SmartPhone
类中,abc
是super.abc
是DigitalDevice.abc
,这是真的吗?
不,这不是真的。
abc
和 super.abc
是相同的,以及 this.abc
(在您的代码中未使用)。但是 DigitalDevice.abc
是尝试调用类 abc
中名为 DigitalDevice
的 static字段。该类中没有这样的静态字段,您的 IDE 正确地告诉您这一点。检查何时在JAVA中使用静态/非静态变量,了解静态和非静态之间的区别。