以下代码在运行时显然会打印出“B1/A2/B2”。现在,是否可以改为打印“A1/A2/B2”(即 A#method2() 应该在 A 上调用 method1(),而不是在 B 上)?
注意:我不需要通过多态性,这个问题只是出于好奇。
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();
}
}