我有基本接口:Java要求执行默认方法
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
我做错了什么?
我假设你的方法没有被称为'do',因为这是Java中的保留关键字。 –
一旦你把名字改成别的东西,你会没事的。 –
在Java 8中编译得很好。只需要使用'do'以外的方法名称。 –