我最近在java中使用了默认方法.我发现它的实现
public interface DefaultMethod {
default String showMyName(String name){
return "Hai "+name;
}
}
public class DefaultMethodMainImpl implements DefaultMethod{
@Override
public String showMyName(String name){
return DefaultMethod.super.showMyName(name);
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是在DefaultMethod.super中,super会调用它除了Object之外没有超类吗?什么超级会回来?
Mar*_*uer 15
如果你super在a中使用class它通常是指该类的祖先(extended类或者Object).
在override的default方法的情况下,interface您必须指定要调用的默认实现的特定接口,因此
<Interface>.super.<method>();
Run Code Online (Sandbox Code Playgroud)
另见钻石问题.