gpt4 book ai didi

java - 当基类的构造函数需要参数时,我被迫在子类中调用 super 构造函数,否则不需要?

转载 作者:行者123 更新时间:2023-12-01 12:38:06 25 4
gpt4 key购买 nike

在 Eclipse 中,当我使用基于参数的构造函数创建基类时,该类的所有派生类都被迫调用 super 构造函数。不然好像没必要。为什么是这样?我猜测派生类默认情况下总是在其构造函数中调用 super(),即使我没有提到这一点。有人可以帮我澄清一下吗?先感谢您。

最佳答案

当您定义自己的构造函数时,编译器不会为您提供无参构造函数。当您定义一个不带构造函数的类时,编译器会通过调用 super() 为您插入一个无参数构造函数。

class Example{
}
becomes

class Example{

Example(){
super(); // an accessible no-arg constructor must be present for the class to compile.
}

但是,带有参数构造函数的基类的情况并非如此,因为编译器无法找到基类的无参数构造函数。您需要通过调用任何 super 构造函数来显式定义构造函数

关于java - 当基类的构造函数需要参数时,我被迫在子类中调用 super 构造函数,否则不需要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25383444/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com