如何为抽象类的子类声明默认构造函数?

Mic*_*rdo 1 java constructor class abstract

以下在Java中对我不起作用.Eclipse抱怨说没有这样的构造函数.我已经将构造函数添加到子类中以解决它,但还有另一种方法可以做我正在尝试做的事情吗?

public abstract class Foo {
    String mText;

    public Foo(String text) {
        mText = text;
    }  
}

public class Bar extends Foo {

}

Foo foo = new Foo("foo");
Run Code Online (Sandbox Code Playgroud)

Bri*_*new 10

你无法实例化,Foo因为它是抽象的.

相反,Bar需要一个调用super(String)构造函数的构造函数.

例如

public Bar(String text) {
   super(text);
}
Run Code Online (Sandbox Code Playgroud)

在这里,我将text字符串传递给超级构造函数.但你可以做(​​例如):

public Bar() {
   super(DEFAULT_TEXT);
}
Run Code Online (Sandbox Code Playgroud)

super()结构需要在子类构造函数的第一个语句.