0
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();
        }}

在上面的程序中,我试图使用 super 关键字访问私有变量,我知道这是不可能的,但令人惊讶的是,在我的 android 手机中使用这个 AIDE(java ide)我能够使用 super 但不能直接访问它,因为我已经注释掉了代码。我只想知道 AIDE 的错误,或者我在这里做错了什么。

图片

4

1 回答 1

0

如果 AIDE 给您的印象是您可以super.i在课堂上使用b并编译它,那么是的,这是 AIDE 中的一个错误。i在 中具有私人访问权限a,因此您不能在 之外使用它a。Java 编译器会说:

b.java:5:错误:我在 a 中具有私有访问权限
    System.out.println(super.i);
                            ^

在 Java 中,压倒性的约定是在类名中使用首字母大写字符。您可以在自己的代码中做自己喜欢的事情,但是在与他人合作或寻求帮助时,遵循约定可能会更好。所以A、 notaBnot b(对于类)。

于 2014-07-13T13:20:35.430 回答