A. 编译错误:没有找到构造器Child()
B. 编译错误:没有找到构造器Parent1()
C. 正确运行,没有输出值
D. 正确运行,输出结果为:parent2 作者: Synaric 时间: 2015-9-26 07:48
Child类没有定义Child的构造函数,编译器为Child添加了默认的构造函数Child()。
在执行Child child = new Child();时,Child的构造函数被调用,由于Child是Parent2子类,Child构造过程中自动构造父类Parent2,即调用Parent2()。Parent2又是Parent1的子类,以此类推,编译器期望一个Parent1()构造函数,但是代码中定义了Parent1(String s);导致编译器不会为Parent1添加默认构造Parent1(),所以会报错。