3 回答

TA貢獻1982條經驗 獲得超2個贊
你應該盡可能使用@Override。它可以防止出現簡單的錯誤。例:
class C {
@Override
public boolean equals(SomeClass obj){
// code ...
}
}
這不會編譯,因為它沒有正確覆蓋public boolean equals(Object obj)。
對于實現接口(僅限1.6及更高版本)或覆蓋超類的方法的方法也是如此。

TA貢獻1841條經驗 獲得超3個贊
如果方法@Override
可用,您應該始終注釋方法。
在JDK 5中,這意味著重寫超類的方法,在JDK 6和7中,它意味著重寫超類的方法,并實現接口的方法。如前所述,原因是它允許編譯器捕獲您認為重寫(或實現)方法的錯誤,但實際上是定義了一個新方法(不同的簽名)。
所述equals(Object)
對比equals(YourObject)
例子就是一個標準的情況下,但相同的參數可以用于接口實現制成。
我想象一下,注釋接口的實現方法并不是強制性的原因是JDK 5將此標記為編譯錯誤。如果JDK 6強制使用此注釋,則會破壞向后兼容性。
我不是Eclipse用戶,但在其他IDE(IntelliJ)中,@Override
只有在項目設置為JDK 6+項目時,才會在實現接口方法時添加注釋。我認為Eclipse是類似的。
但是,我更希望看到這種用法的不同注釋,可能是@Implements
注釋。
添加回答
舉報