Javaのインターフェースについて
Javaのインターフェースについていくつか気になることがあるのでもしよろしければ
教えてください。
1.クラスでは多重継承できなくて、インターフェース同士の多重継承ができる理由。
↓のようなもの
interface B{ void B(); } interface C{ void C(); } interface A extends B,C{ void A(); } class Sample implements A{ public void A(){System.out.println("A")} public void B(){System.out.println("B")} public void C(){System.out.println("C")} }
2.多重継承したインターフェースを実装する場合と同時実装の違い
1.の文と比べてSampleクラスが何を実装しているか一目でわかる気がするので1.の文のメリットがわからない
interface B{ void B(); } interface C{ void C(); } interface A{ void A(); } class Sample implements A,B,C{ public void A(){System.out.println("A")} public void B(){System.out.println("B")} public void C(){System.out.println("C")} }
3.インターフェースの多重継承でのデメリット?として
「多重継承でつながっているインタフェース内で、一つの変数名が複数箇所で定義されているとコンパイルエラーになります。」
と記載してあるサイトがあり、Java8で試してみるとコンパイルエラーが起きなかったのですがJava7ではコンパイルエラーになるのでしょうか?
なぜJava8では実行できるのでしょうか?
どなたかよろしくお願いします。