Доступ к закрытым переменным в JAVA (AIDE)

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, или я делаю что-то здесь не так.

образ

1 ответ

Решение

Если AIDE создаст у вас впечатление, что вы могли бы использовать super.i в классе b и скомпилируйте его, тогда да, это ошибка в AIDE. i имеет частный доступ в aи поэтому вы не можете использовать его вне a, Компилятор Java сказал бы:

b.java:5: ошибка: у меня есть личный доступ в
    System.out.println(super.i);
                            ^

В Java подавляющее соглашение заключается в использовании начальных символов верхнего регистра в именах классов. Вы можете делать то, что вам нравится, в своем собственном коде, но при работе с другими людьми или обращении за помощью, возможно, лучше следовать соглашениям. Так Aне a, а также B не b (для занятий).

Другие вопросы по тегам