Что будет выведено на экран?

class A {
    int x = 1;

    public void printX() {
        System.out.println(getX());
    }

    public int getX() {
        return x;
    }
}

class B extends A {
    int x = 2;

    public int getX() {
        return x + 1;
    }
}

public class Test {
    public static void main(String[] args) {
        A classA = new B();
        classA.printX();
    }
}
Explanation
Метод printX() выводит на экран значение, которое возвращает метод getX(). При этом вызывается перекрытый метод из класса B, который возвращает x+1, причём значение поля x также берётся из класса B.

Следи за CodeGalaxy

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

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