我在理解何时在重写方法中调用super时遇到问题。根据{{3}},它应该在底部,但我的同事不同意。
您对此主题有何看法?
答案 0 :(得分:3)
答案是取决于。实际决策取决于您在重写方法中所执行的操作以及覆盖特定方法时基类所需的行为。
您要覆盖的方法的文档应提供覆盖时预期行为的详细信息。我个人的偏好首先是super
。
答案 1 :(得分:1)
这取决于被覆盖的方法正在做什么。如果您正在讨论构造函数,则必须首先调用super
以确保在设置其状态之前正确构造超类。如果它是另一种方法,那么你调用的方式取决于你是否正在转换输入参数(super
需要在那之后)或返回值(super
在此之前)。
您链接到的“帖子”是自动代码审核工具的文档,而不是推荐,它有选项告诉它子类应该在开头或结尾调用super
。他们的方法。
答案 2 :(得分:0)
我的观点是规则应符合您的编码标准。如果您不同意,这是一个好兆头,您不清楚是否需要为您的项目进行检查。
我个人总是在开始时拨打超级电话,除非有充分的理由。