B构造函数被调用。B构造函数的第一条隐式指令是
super()(调用超类的默认构造函数)。因此,调用了A的构造函数。A的构造函数调用
super(),它调用java.lang.Object构造函数,该构造函数不输出任何内容。然后
methodOne()被称为。由于对象的类型为B,因此
methodOne将调用B的版本并
B进行打印。然后,B构造函数继续执行并被
*打印。
必须注意的是,从构造函数中调用可重写方法(就像A的构造函数一样)是非常糟糕的做法:它在尚未构造的对象上调用方法。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)