從實現類訪問重寫的預設方法

在課堂上,super.foo() 只會檢視超類。如果要從超級介面呼叫預設實現,則需要使用介面名稱 Fooable.super.foo() 限定 super

public interface Fooable {
    default int foo() {return 3;}
}

public class A extends Object implements Fooable {
    @Override
    public int foo() {
        //return super.foo() + 1; //error: no method foo() in java.lang.Object
        return Fooable.super.foo() + 1; //okay, returns 4
    }
}