次のコードを実行すると、明らかに「B1/A2/B2」が出力されます。現在、代わりに「A1/A2/B2」を出力することは可能ですか (つまり、A#method2() は B ではなく A で method1() を呼び出す必要があります)。
注: ポリモーフィズムをパスする必要はありません。この質問は単なる好奇心からのものです。
class A {
public void method1() {
System.out.println("A1");
}
public void method2() {
method1();
System.out.println("A2");
}
}
class B extends A {
@Override public void method2() {
super.method2();
System.out.println("B2");
}
@Override public void method1() {
System.out.println("B1");
}
}
public class Tmp {
public static void main(String args[]) {
B b = new B();
b.method2();
}
}