我有基本接口: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'以外的方法名稱。 –