class Top{
public Top(String s){System.out.print("B");}
}
public class Bottom2 extends Top{
public Bottom2(String s){System.out.print("D");}
public static void main(String args[]){
new Bottom2("C");
System.out.println(" ");
} }
在上面的程序中,我猜输出必须为
BD
,但是在书中他们说编译失败。谁能解释一下? 最佳答案
派生类Bottom2
是使用super
调用基类构造函数所必需的,否则会出现编译错误。例如,如果您这样做,它将编译:
public Bottom2(String s) { super(s); System.out.print("D"); }
请参见the section on Subclass Constructors。