相关疑难解决方法(0)

Java错误:默认构造函数未定义隐式超级构造函数

我有一些简单的Java代码,在其结构中看起来与此类似:

abstract public class BaseClass {
    String someString;
    public BaseClass(String someString) {
        this.someString = someString;
    }
    abstract public String getName();
}

public class ACSubClass extends BaseClass {
    public ASubClass(String someString) {
        super(someString);
    }
    public String getName() {
        return "name value for ASubClass";
    }
}
Run Code Online (Sandbox Code Playgroud)

我将有很多子类BaseClass,每个子类以getName()自己的方式实现该方法(模板方法模式).

这很好用,但我不喜欢在子类中使用冗余构造函数.打字更多,难以维护.如果我要更改BaseClass构造函数的方法签名,我将不得不更改所有子类.

当我从子类中删除构造函数时,我得到了这个编译时错误:

Implicit super constructor BaseClass() is undefined for default constructor. Must define an explicit constructor

我正在尝试做什么?

java inheritance dry boilerplate

87
推荐指数
3
解决办法
19万
查看次数

隐式构造函数和显式构造函数之间有什么区别?

有人可以解释一下Java中隐式构造函数和显式构造函数之间的区别吗?

java

1
推荐指数
1
解决办法
4万
查看次数

标签 统计

java ×2

boilerplate ×1

dry ×1

inheritance ×1