Java8中使用預設方法實現多重繼承的測試
阿新 • • 發佈:2018-12-26
測試內容:
當一個類從超類和介面繼承相同的方法時會發生什麼?
一個超類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
如果一個類從其超類繼承了一個方法(抽象或具體),並且從其介面之一繼承了具有相同簽名的方法,則該類繼承超類的方法,並忽略超級介面中的方法。
如果通過類層次結構在類中不可用相同的方法,則此規則將介面中的預設方法視為備用。