我有Base界面:
public interface Doable {
void doAction(String str);
}
我有扩展界面:
public interface DoubleDoable extends Doable{
@Override
default void doAction(String str) {
doOnce();
doOnce();
}
void doOnce();
}
我有一个实现:
public class Action implements DoubleDoable {
public void doOnce() {
System.out.println(123);
}
}
但是,它没有编译,如:Error:(10, 8) java: Action is not abstract and does not override abstract method doAction(java.lang.String) in Doable
我做错了吗?
答案 0 :(得分:2)
如果您正在使用Java 8编译器,那么代码导致编译错误的唯一方法是将传递给编译器的-source
标志的值设置为{{1或者更低。
类似的东西:
1.7
如果你正在使用maven,下面的属性设置将具有相同的效果。
javac -source 1.7 ...
答案 1 :(得分:0)
您无法调用方法do
,因为它是java保留字。您可以找到所有Java关键字列表here。