假设我有一个扩展父类(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/