Java 8引入了默认方法,使得接口可以在不修改现有实现的情况下进行扩展。
我想知道,当方法被覆盖或由于不同接口之间存在冲突的默认实现而无法使用时,是否可以显式调用默认实现的方法。
interface A {
default void foo() {
System.out.println("A.foo");
}
}
class B implements A {
@Override
public void foo() {
System.out.println("B.foo");
}
public void afoo() {
// how to invoke A.foo() here?
}
}
考虑上面的代码,如何从类B的一个方法中调用A.foo()?