理解子类构造函数中 super() 的必要性
在 Java 中创建子类时,会出现这样的问题:是否需要 super()方法调用在子类的构造函数中是强制的。本文深入探讨了这个主题,澄清了以下几个方面:
编译器自动插入 super()
这个问题的简短答案是否定的。如果没有明确声明,编译器不会自动在子类的构造函数中插入 super() 调用。因此,子类构造函数必须始终指定它要调用的超类构造函数。
不存在等价的无参数构造函数
重要的是要理解,不要将子类构造函数中的 super() 调用并不意味着编译器将插入不带参数的等效构造函数。如果超类没有可访问的无参数构造函数,则省略 super() 调用将导致编译错误。
存在参数时的构造函数调用
考虑带有参数的子类构造函数。在这种情况下,需要调用 super() 来指定要调用哪个超类构造函数。调用的超类构造函数主要由传递给子类构造函数的实际参数决定。如果 super() 调用中没有指定参数列表,它将调用与子类构造参数的顺序和类型相匹配的超类构造函数。
以上是子类构造函数中“super()”是必需的吗?的详细内容。更多信息请关注PHP中文网其他相关文章!