2016-04-29 146 views
3

为什么会有人写Java:为什么有人会在默认情况下编写super()?

super(); //(parameterless) 

一个子类的构造函数里面,因为如果这是不存在的,默认的,无参数的父类的构造被称为呢?

+2

调用'super()'构造函数没有实际用处。当我使用它时,我会提醒自己超级构造函数被调用,所以我不会忘记(用于调试等......) – ParkerHalo

+0

@ParkerHalo是_is_实际使用:) – davmac

回答

2

我通常会产生使用IDE(如Eclipse的)构造函数,它实际上地方调用,所以这可能是其中一个案件

+0

是的,它通常是一个代码从日食(从一些日食)造型。 –

2

的参数的超()构造函数是超级构造函数列表的只是其中的一部分各种参数,你可以打电话

super(int, String) 
super(int) 
super()   // for completeness 

即使有些球队可能需要调用由于造型的原因,无参数的超级调用()不会取得任何成就,因而是简单的代码膨胀。 (有些人喜欢那样。)

0

为了明确(否则隐含)控制流。

这样的代码提醒我们,超类的默认构造函数实际上将在派生类的构造函数的开头被调用。那些阅读代码的人会看到一个可视标记,提醒他们在构建实例时还要检查超类的构造函数。

相关问题