2017-08-30 5 views
1

サブインターフェイスのインターフェイスのメソッド/メソッドをオーバーライドする理由は何ですか?例サブインターフェイスのインターフェイスのメソッド/メソッドをオーバーライドする理由は何ですか?

あなたは、元の戻り値の型のサブタイプにあなたのメソッドの戻り値の型を変更する必要があります
interface I{ public void method();} 
interface I2 extends I{@Override public void method();} 
+0

それは、あなたの質問がある場合は、それを行うには持っていないのですか? – Yazan

+0

あなたはI2の著者に尋ねる必要があります。あなたがそれをしている間に、それが何故恐ろしい無意味な名前を持っているのか、それがなぜ0のドキュメントを持っているのか、なぜそれが正しくフォーマット/インデントされていないのかを尋ねます。 **実際の**例が見つかった場合は、それについて尋ねてください(ただし、javadocはなぜそれを理解させるべきですか?ほとんどの場合、メソッドのドキュメントを追加/修正できることが理由です。 https://docs.oracle.com/javase/8/docs/api/java/util/List.html#equals-java.lang.Object-) –

+0

私はSpring APIの実装でそれを見つけました。 – subhashis

答えて

5

ため

。例えば:

interface I { 
    public Object method(); 
} 

interface I2 extends I { 
    @Override 
    public Integer method(); 
} 

それとも、Javaの8例で導入された方法にdefault実装を追加することができます。

interface I { 
    public void method(); 
} 

interface I2 extends I { 
    @Override 
    default public void method() { 
     System.out.println("do something"); 
    } 
} 
+1

良い答え。 btwここの 'public'キーワードは余分ですが、Java 9ではインターフェースにプライベートメソッドを持つことができます。 –

+0

@KlitosKyriacouはい、そうです。 –

関連する問題