我有一些简单的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";
}
}
我将会有很多个BaseClass
的子类,每个子类以自己的方式实现getName()
方法(模板方法模式)。
这个方案很好,但我不喜欢在子类中添加冗余的构造函数。这样做更加繁琐且难以维护。如果我要改变BaseClass
构造函数的方法签名,我就需要改变所有子类的构造函数。
当我从子类中移除构造函数后,我得到了这个编译时错误:
Implicit super constructor BaseClass() is undefined for default constructor. Must define an explicit constructor
我想做的事情是否可能实现?