亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我們應該@Override接口的方法實現嗎?

我們應該@Override接口的方法實現嗎?

aluckdog 2019-09-19 09:46:36
是否應該使用實現接口方法的方法進行注釋@Override?注釋的javadocOverride說:指示方法聲明旨在覆蓋超類中的方法聲明。如果使用此批注類型注釋方法但不覆蓋超類方法,則編譯器需要生成錯誤消息。我不認為接口在技術上是超類?;蛘呤菃幔?
查看完整描述

3 回答

?
臨摹微笑

TA貢獻1982條經驗 獲得超2個贊

你應該盡可能使用@Override。它可以防止出現簡單的錯誤。例:


class C {

    @Override

    public boolean equals(SomeClass obj){

        // code ...

    }

}

這不會編譯,因為它沒有正確覆蓋public boolean equals(Object obj)。


對于實現接口(僅限1.6及更高版本)或覆蓋超類的方法的方法也是如此。


查看完整回答
反對 回復 2019-09-19
?
動漫人物

TA貢獻1815條經驗 獲得超10個贊

我相信javac的行為已經改變了 - 用1.5它禁止了注釋,而1.6則沒有。注釋提供額外的編譯時檢查,所以如果你使用1.6,我會去做。


查看完整回答
反對 回復 2019-09-19
?
偶然的你

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注釋。


查看完整回答
反對 回復 2019-09-19
  • 3 回答
  • 0 關注
  • 1169 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號