首页 >Java >java教程 >Java 隐式超级构造函数错误:如何修复'隐式超级构造函数...默认构造函数未定义”?

Java 隐式超级构造函数错误:如何修复'隐式超级构造函数...默认构造函数未定义”?

DDD
DDD原创
2024-12-25 12:21:35694浏览

Java Implicit Super Constructor Error: How to Fix

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

问题:子类和抽象基类的默认构造函数错误

Java 开发人员遇到错误“Implicit super默认构造函数的构造函数 BaseClass() 未定义。”从子类中删除冗余构造函数之后。他们想知道是否可以在仍然遵守模板方法模式的情况下删除构造函数。

A:构造和默认构造函数

出现错误是因为基类 ( BaseClass) 声明一个构造函数 (public BaseClass(String someString)),禁用默认构造函数(不带参数)。当从子类 (ACSubClass) 中删除构造函数时,编译器会通过默认构造函数插入对基类 (super()) 的无参构造函数的隐式调用。由于 BaseClass 没有无参构造函数,因此这是非法的。

可能的解决方案:

  1. 从 BaseClass 中删除构造函数: 允许基类只有默认构造函数,子类可以继承。
  2. 在 BaseClass 中声明无参构造函数: 将无参构造函数添加到基类,可以作为唯一的构造函数,也可以与其他构造函数一起使用。

但是,如果基类需要构造函数参数,这些解决方案可能不可行。

此外,请考虑重构设计:

  • 使用工厂创建子类实例:创建一个工厂类,使用必要的参数处理子类的创建。
  • 将参数传递给 getName() 方法: 以允许参数自定义名称的方式设计 getName() 方法返回名称值。

以上是Java 隐式超级构造函数错误:如何修复'隐式超级构造函数...默认构造函数未定义”?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn