java - 什么时候需要显式调用父类(super class)构造函数?

标签 java constructor subclass superclass

假设我有一个扩展父类(super class)的子类。在什么情况下我需要显式键入 super() 以使父类(super class)构造函数运行?

我正在看一本关于抽象类的书中的示例,当它们使用非抽象子类扩展它时,子类的默认构造函数是空白的,并且有一条注释说将调用父类(super class)的默认构造函数。同时,我也在这里看到有人的问题不是显式调用 super() 的实例。

调用父类(super class)的默认/非默认构造函数和子类的默认/非默认构造函数有区别吗?

最佳答案

从不只需要

super();

如果您不指定其他任何内容,就会出现这种情况。你需要指定构造函数来调用if:

  • 你想调用一个有参数的父类(super class)构造函数
  • 您想链接到同一个类中的另一个构造函数,而不是父类(super class)构造函数

您声称:

At the same time I've also seen instances on here where someone's problem was not explicitly calling super().

你能举一些例子吗?我无法想象这怎么可能......

关于java - 什么时候需要显式调用父类(super class)构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6318628/

相关文章:

java - 读取文件,替换字符串并创建一个包含所有内容的新文件

c++ - 类(class)的私有(private)成员在我的类(class)实例化期间发生了变化,即使他们不应该

swift - 在 Swift 中打印类变量 - 预期声明错误

java - 子类抛出 UnsupportedOperationException 与忽略输入参数

java - 无法在 ArrayList 中找到对象的方法

java - opc UA 服务器重新启动时未创建 eclipse milo session

java - 包含汉字和全角/半角字符的正则表达式

java - 如何在 jhipster 的公司注册内创建子用户

c# - 坐标轴的合适类型?

java - 在没有构造函数的情况下初始化类时会调用什么?