当你在 Java 中扩展一个类时,你可以通过super引用来引用基类的成员。然而,当你有一个类A、那个implements和接口时B,你只能以B这种方式引用它的方法B.super.method()。为什么super第二种情况下的关键字必须以 为前缀B.?
例子:
interface Runner {
default void run() {
System.out.println("default Runner::run");
}
}
static class RunnerImpl implements Runner {
public void run() {
Runner.super.run(); // doesn't work without "Runner."
}
}
相关分类