Полиморфизм и конструкторы

Я студент AP Java и готовлюсь к экзамену. Я наткнулся на этот вопрос и не понимаю ответа:

Рассмотрим следующие классы:

public class A
{
  public A() { methodOne(); }

  public void methodOne() { System.out.print("A"); }
}

public class B extends A
{
  public B() { System.out.print("*"); }

  public void methodOne() { System.out.print("B"); }
}

Что будет на выходе при выполнении следующего кода:

A obj = new B();

Правильный ответ — B *. Может кто-нибудь объяснить мне последовательность вызовов методов?

18
задан Oliver Charlesworth 1 May 2012 в 21:50
поделиться