[英]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.