考虑以下类:
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 *.有人可以向我解释方法调用的顺序吗?
必须注意的是,从构造函数(如A的构造函数)调用可覆盖的方法是非常糟糕的做法:它调用一个尚未构造的对象的方法.