为什么会有人写这个呢?
在子类的构造函数中明确调用父类的构造函数,因为如果没有这个调用,那么默认的无参数父类构造函数仍然会被调用。
super(); //(parameterless)
在子类的构造函数中明确调用父类的构造函数,因为如果没有这个调用,那么默认的无参数父类构造函数仍然会被调用。
super(); //(parameterless)
我通常使用IDE(例如Eclipse)生成构造函数,它会自动放置该调用语句,这可能是其中一种情况。
没有参数的super()构造函数只是一系列具有不同参数的super构造函数中的一个部分,您可以调用这些构造函数。
super(int, String)
super(int)
super() // for completeness
明确(否则隐含的)控制流程。
这样的代码作为一个提醒,超类默认构造函数实际上会在派生类构造函数的开始处被调用。阅读代码的人将有一个视觉标记,提醒他们在想知道实例构造时发生了什么时也要检查超类构造函数。
super()
构造函数没有实际用途。我使用它只是为了提醒自己已经调用了超类构造函数,以便我不会忘记(用于调试等...)。 - ParkerHalo