1. 程式人生 > >Java8中使用預設方法實現多重繼承的測試

Java8中使用預設方法實現多重繼承的測試

測試內容:

當一個類從超類和介面繼承相同的方法時會發生什麼?

一個超類MyClass:

package insping;
public class MyClass {
    public String getString() {
        return "MyClass";
    }
}

一個介面MyInterface:

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

如果一個類從其超類繼承了一個方法(抽象或具體),並且從其介面之一繼承了具有相同簽名的方法,則該類繼承超類的方法,並忽略超級介面中的方法。

如果通過類層次結構在類中不可用相同的方法,則此規則將介面中的預設方法視為備用。