2012-10-18 30 views
3

這個構造爲什麼會在Eclipse中產生錯誤/警告?我明白它會產生一個報告,但我想必須有一些基本原理,如果你弄清楚那些冗餘的超級接口,會出現什麼問題。eclipse中的冗餘超級界面警告

實施例:

interface I1{ 
    void boo(); 
} 


class A implements I1 { 
    public void boo() {} 
} 


class B extends A implements I1 { 
    public void boo() {} 
} 

該警告是在B,近實現I1

+0

你能告訴我們一些代碼嗎? – flash

+0

這可能是一個配置問題,我的eclipse不會給我多餘的'implements'提示警告。 – Keppil

+0

是的,您可以打開/關閉此警告。這就是爲什麼我使用*可以*。 – pihentagy

回答

3

成像如果類A實現I1和類B延伸A。默認B實現I1,即使它不需要實現I1中的任何方法。如果A要更改爲執行I2B仍然會編譯。

但是,如果B明確implements I1但不提供的方法,則此更改將導致B不再編譯。

當然,我忽略了B的用戶可能會認爲B執行I1的問題。我們假設這個案例不是問題。

3

這只是一個警告,我想這有兩方面的原因:

  • 它是多餘的,並因此可以去除。噪音越少,它就越好。但這是一個風格問題
  • 它告訴你,你不需要在B中實現任何接口方法,因爲它們已經在A中實現了。並且實現接口方法因此不僅實現接口,但也覆蓋超類中的默認實現。