從實現類訪問重寫的預設方法
在課堂上,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
}
}