Каким будет результат компиляции и выполнения данного кода?

public class Greek {

     int i = 1;

     public int getI() {
          System.out.print("Super");
          return i;
     }

     public static void main(String arhs[]) {
          Greek ga = new Arabik();
          System.out.print(ga.i + " " + ga.getI());
     }
}


class Arabik extends Greek {

     int i = 2;

     public int getI() {
          System.out.print("Sub");
          return i;
     }

}
Explanation
Изначально будет высчитано то, что выведет System.out.print(ga.i+" "+ga.getI()); далее будет выведено это значение. т.е. вывод не будет последовательным: сначала ga.i, потом ga.getI(). Следующим шагом будет переменная ga.i, которая = 1, а потом выполниться метод ga.getI(), который сразу напечатает Sub и вернет 2. И в конце System.out.print(ga.i+" "+ga.getI()); напечатает 1 2.

Следи за CodeGalaxy

Мобильное приложение Beta

Get it on Google Play
Обратная Связь
Продолжайте изучать
тесты по Java
Cosmo
Зарегистрируйся сейчас
или Подпишись на будущие тесты