Java вызывает метод подкласса при попытке использовать метод родительского класса

Если у меня есть два класса, А и В,

public class A {
    public int test() {
        return 1;
    }
}

public class B extends A{
    public int test() {
        return 2;
    }
}

Если я сделаю:A a1 = new B(), затемa1.test() возвращает 2 вместо 1 по желанию. Это просто причуда Java или есть какая-то причина для такого поведения?

Ответы на вопрос(8)

Ваш ответ на вопрос