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

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
Зареєструйся Зараз
або Підпишись на майбутні тести