Java 8ではデフォルトのメソッドを使用して多重継承のテストを実現


テスト内容:
クラスがスーパークラスとインタフェースから同じメソッドを継承するとどうなりますか?
スーパークラスMyClass:
package insping;
public class MyClass {
    public String getString() {
        return "MyClass";
    }
}

インターフェイス:
package insping;
public interface MyInterface {
    default public String getString() {
        return "MyInterface";
    }
}

テストクラスTest:
package insping;
public class Test extends MyClass implements MyInterface {

    public static void main(String[] args) {
        System.out.println(new Test().getString());
    }
}

結果:
    :MyClass

クラスがそのスーパークラスからメソッド(抽象的または具体的)を継承し、そのインタフェースの1つから同じ署名を持つメソッドを継承した場合、クラスはスーパークラスのメソッドを継承し、スーパーインタフェースのメソッドを無視します.
クラス階層を使用してクラスで同じメソッドが使用できない場合、このルールはインタフェースのデフォルトメソッドを代替と見なします.