interface A{
default void func(){
System.out.println("This function is a default function in interface A!");
}
}
interface B{
default void func(){
System.out.println("This function is a default function in interface B");
}
}
class C implements A,B{
public void func(){
System.out.println("func in class C!");
A.super.func();//What's meaning?
}
}
答案 0 :(得分:4)
由于A
和B
都有func()
的默认实现,A.super.func()
允许您调用A
的默认实现{ {1}}(同样func()
会调用B.super.func()
B
的默认实现。
答案 1 :(得分:4)
如果您的方法覆盖了其超类之一的方法,则可以通过使用关键字super
来调用重写方法
因此,通过调用super.func()
,您可以访问超类的func()
方法。但是这里A & B
都有同名的函数,因此你必须告诉编译器使用哪个super。
通过告诉A.super
你告诉编译器使用接口A的方法。同样适用于B