你把super()调用作为构造函数的开头吗?

sle*_*ske 7 java redundancy constructor coding-style super

这是一个关于编码风格和推荐做法的问题:

正如在问题的答案中解释的那样,在构造函数中放置super()是不必要的?,如果你为一个应该使用超类中的默认(no-arg)构造函数的类编写构造函数,你可以super()在构造函数的开头调用:

public MyClass(int parm){
  super(); // leaving this out makes no difference
  // do stuff...
}
Run Code Online (Sandbox Code Playgroud)

但你也可以省略通话; 在两种情况下,编译器都会像super()调用一样.

那么,你是否将呼叫置于你的构造函数中?

一方面,人们可能会争辩说,包括super()使事情更明确.OTOH,我总是不喜欢编写冗余代码,所以我个人倾向于将其删除; 然而,我经常在其他人的代码中看到它.

你有什么经历?你有一种或另一种方法有问题吗?您是否有规定一种方法的编码指南?

BTW:相关问题(仅供参考):

当没有其他构造函数时,是否有理由显式编写默认构造函数?

Joa*_*uer 20

我没有写这个super()电话的原因与我不写不必要的演员表的原因相同:

它为代码添加了噪声,而没有提供任何附加信息(既不是编译器也不是开发人员阅读我的代码).