我知道在为Java中的对象覆盖equals()
和hashCode()
时,请添加@Override
标记,但我似乎无法找到任何说明您的文档在覆盖toString()
时应该这样做 - 不应该是相同的,因为它们都是继承的Object
方法吗?
答案 0 :(得分:3)
每当您重写超类方法时,都应该始终包含注释。
答案 1 :(得分:1)
不确定。使用@Override
注释永远不会必要,但它很有帮助。来自https://docs.oracle.com/javase/tutorial/java/annotations/predefined.html:
虽然在覆盖方法时不需要使用此批注,但它有助于防止出错。如果使用@Override标记的方法无法正确覆盖其某个超类中的方法,则编译器会生成错误。
答案 2 :(得分:1)
你应该使用@Override注释toString(),尽管从法律上讲没有这样的要求。注释@Override可防止程序员错误地覆盖超类方法;如果覆盖不正确,则会发生编译时错误。
意识形态是在发生错误后尽快发现错误,理想情况是在编译时。