Metoda wywoływania podklasy Java podczas próby użycia metody klasy nadrzędnej

Jeśli mam dwie klasy, A i B,

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

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

Jeśli zrobię:A a1 = new B(), następniea1.test() w razie potrzeby zwraca 2 zamiast 1. Czy to tylko dziwactwo Java, czy jest jakiś powód takiego zachowania?

questionAnswers(8)

yourAnswerToTheQuestion