class a{
private int i=100;
a(){
//this.i=5;
}
}
class b extends a {
b( ){
//super.i=10;
a a = new a();
System.out.println(super.i);
}
}
class c {
public static void main(String [] args){
b b = new b();
}}
在上面的程序中,我试图用超级关键字访问私有变量,我知道这是不可能的,但令人惊讶的是在我的Android手机中使用这个AIDE(java ide)我能够访问这个超级但不直接,因为我有在代码中注释掉。我只想知道AIDE的错误或者我在这里做错了什么。
答案 0 :(得分:0)
如果AIDE给您的印象是您可以在课程super.i
中使用b
并进行编译,那么是的,这是AIDE中的错误。 i
在a
中拥有私人访问权限,因此您无法在a
之外使用它。 Java编译器会说:
b.java:5: error: i has private access in a System.out.println(super.i); ^
在Java中,压倒性的约定是在类名中使用初始大写字符。您可以在自己的代码中执行您喜欢的操作,但在与他人合作或寻求帮助时,遵循约定可能会更好。所以A
,而非a
和B
不是b
(对于课程)。