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

当Java类扩展了一个带有指定构造函数的抽象基类时,如果没有提供默认构造函数,编译器会报错。这是因为子类在没有显式构造函数时,会尝试调用基类的无参构造函数,但基类没有这样的构造函数。解决办法是在基类中添加无参构造函数,或者确保子类都有对应的构造函数。此外,该问题也可能与项目配置(如JRE版本设置)有关。
摘要由CSDN通过智能技术生成

问题

我有一些简单的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()方法(template method pattern)。

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

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

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

我正在尝试做什么?

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值