【发布时间】:2011-02-12 08:49:20
【问题描述】:
这是一个关于编码风格和推荐做法的问题:
正如问题unnecessary to put super() in constructor? 的答案中所解释的,如果您为一个应该使用超类的默认(无参数)构造函数的类编写构造函数,您可以在开头调用super()你的构造函数:
public MyClass(int parm){
super(); // leaving this out makes no difference
// do stuff...
}
但你也可以省略调用;在这两种情况下,编译器都会像 super() 调用一样。
那么,你是否将调用放入构造函数中?
一方面,有人可能会争辩说,包含super() 会使事情更加明确。 OTOH,我总是不喜欢编写冗余代码,所以我个人倾向于将其省略;然而,我确实经常在其他人的代码中看到它。
你有什么经验?您对一种或另一种方法有疑问吗?您是否有规定一种方法的编码指南?
顺便说一句:一个相关问题(仅供参考):
Is there a reason to explicitly code a default constructor when there are no other constructors?
【问题讨论】:
-
我没有,但可能是因为我阅读(并从中学习!)的几乎所有代码都没有。我可能只是在延续我学到的糟糕风格。
标签: java coding-style constructor super redundancy