У меня есть простой 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
Я пытаюсь сделать это?