1. ホーム
  2. java

[解決済み] Javaでは、1つのインタフェースで複数のインタフェースを拡張することができますか?

2022-05-08 03:51:33

質問

Javaでは、1つのインタフェースが複数のインタフェースを拡張することができますか?このコードは私のIDEで有効に表示され、コンパイルもできます。

interface Foo extends Runnable, Set, Comparator<String> { }

が、Javaでは多重継承ができないと聞いていました。なぜ、インターフェースでは例外があるように見えるのでしょうか?

解決方法は?

はい、できます。このように、1つのインタフェースが複数のインタフェースを拡張することができます。

interface Maininterface extends inter1, inter2, inter3 {  
  // methods
}

また、1つのクラスで複数のインターフェースを実装することができます。もし、2つのインターフェースが同じ名前とシグネチャを定義したメソッドを持っていたらどうでしょうか?

厄介な点があります。

interface A {
    void test();
}

interface B {
    void test();
}

class C implements A, B {

    @Override
    public void test() {

    }     

}

そうすると、1つの実装で両方に対応できますね :)

私の投稿の全文はこちら。

http://codeinventions.blogspot.com/2014/07/can-interface-extend-multiple.html