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?
}
}
2条答案
按热度按时间ni65a41a1#
因为两者
A
以及B
具有的默认实现func()
,A.super.func()
允许您调用A
的默认实现func()
(同样地B.super.func()
将调用B
的默认实现func()
).ymzxtsji2#
从文件中
如果您的方法重写其超类的方法之一,则可以通过使用关键字super来调用重写的方法
因此通过呼叫
super.func()
您可以访问func()
超类的方法。但这里两者都有A & B
具有同名函数,因此必须告诉编译器要使用哪个super。所以说
A.super
您正在通知编译器使用接口a的方法。b也是一样