class Top {
    public Top(String s) {
        System.out.print("B");
    }
}

public class Bottom2 extends Top {
    public Bottom2(String s) {
        super();
        System.out.print("D");
    }

    public static void main(String [] args) {
        Bottom2 as=new Bottom2("A");
        new Bottom2("C");
        System.out.println(" ");
    }
}


我想调用超类构造函数。为什么不编译?

最佳答案

调用super()意味着在基类中有一个默认构造函数。您的示例未显示该内容,因此代码无法编译。

因此,为了使其正常工作,只需在子类中添加如下调用:

public Bottom2(String s)
{
    super(s); // call to superclass constructor with parameters.
    System.out.print("D");
}

10-04 23:14