java - 子类的不同构造函数

标签 java inheritance constructor

我有一个带有构造函数的抽象父类(super class)

public classname(String name, int amount)

并希望创建该抽象类的子类,而不是将 String 作为其第一个参数,而是采用表示给定 String 名称的整数值,例如0 代表一些字符串,1 代表另一个,依此类推。

当我尝试编写 subclass(int number, int amount) 形式的构造函数时,出现“隐式 super 构造函数未定义。必须显式调用另一个构造函数”形式的错误。

为什么不能在子类中创建另一个不同的构造函数?

最佳答案

错误的问题,您可以在子类中编写另一个构造函数,但由于父类(super class)没有默认/无参数构造函数,您必须显式调用您提到的父类(super class)的构造函数确保父类(super class)的不变性。

关于java - 子类的不同构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21918835/

相关文章:

python - Django admin - 在单个管理界面中混合多个模型内联

c# - 具有多级继承的 base.Method() 未被调用?

c++ - C++错误: expected constructor, destructor, or type conversion before ‘(’ token

C++ 可变参数构造函数 - 传递给父构造函数

java - 无法使用 classLoader.getResourceAsStream() 从 WEB-INF 文件夹中检索图像

Java 无法在没有明显冗余类型转换的情况下正确推断流类型

java - 如何在数据库中持久保存指定长度的盐

java - 有没有办法在调用的时候不调用子类的方法?

C++:何时(以及如何)调用 C++ 全局静态构造函数?

java - 如何使用 javax.json 读取 JSON 数组