繁体   English   中英

何时必须使用对超级构造函数的显式调用?

[英]When must an explicit call to super constructor be used?

我正在学习super()构造函数,我遇到了这个语句:

由于继承的实例变量应该被初始化,并且基础 class 构造函数就是为此而设计的,因此应该始终使用对super()的显式调用。

这个声明是什么意思?

除了如果基础 class 没有定义无参数构造函数,隐式调用会导致错误这一事实?

您引用的这句话并没有明确说明您需要在 class 中有 0 参数构造函数。 这句话的重点是所有属于父 class 的变量都应该被初始化,并且你用构造函数初始化这些变量,因此你应该在你的子 class 构造函数中调用父 class 构造函数。 父 class 构造函数的 arguments 的数量是多少无关紧要。

我认为引用的段落有点误导,因为如果您对未参数化的隐式 super() 调用不满意,您只需要显式调用参数化 super()。

如果基础 class 仅具有参数化构造函数,您还必须进行参数化 super() 调用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM