这是一个关于编码风格和推荐实践的问题:
正如问题答案中所解释的不需要将 super() 放在构造函数中吗? https://stackoverflow.com/questions/2054022/unnecessary-to-put-super-in-constructor,如果您为一个应该使用超类中的默认(无参数)构造函数的类编写一个构造函数,您可以调用super()
在构造函数的开头:
public MyClass(int parm){
super(); // leaving this out makes no difference
// do stuff...
}
但您也可以省略通话;在这两种情况下,编译器都会表现得好像有 super() 调用一样。
那么,您是否将调用放入构造函数中?
一方面,人们可能会争辩说,包括super()
让事情变得更加明确。 OTOH,我总是不喜欢编写冗余代码,所以我个人倾向于将其省略;然而,我确实经常在其他人的代码中看到它。
你有什么经历?您对其中一种方法有疑问吗?您是否有规定一种方法的编码指南?
BTW:一个相关问题(仅供参考):
当没有其他构造函数时,是否有理由显式编写默认构造函数? https://stackoverflow.com/questions/2291856/is-there-a-reason-to-explicitly-code-a-default-constructor-when-there-are-no-othe
我不写super()
出于同样的原因,我不会编写不必要的转换:
它会在不提供任何附加信息的情况下向代码添加噪音(编译器也不提供任何附加信息)nor给正在阅读我的代码的开发人员)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)