我无法理解我正在尝试的以下代码。
我有一个班级" ExtendMe",一个界面"可实施"和另一个班级" ImplementYikes"这将扩展课程" ExtendMe"并实施"可实施"如下:
class ImplementYikes extends ExtendMe implements Implementable{
public static void main(String[] args){
Yikes y1 = new Yikes();
Yikes y2 = new childYikes();
y1.display();
y2.display();
Implementable iii = new Implementable() {
@Override
public void iDisplay() {
// TODO Auto-generated method stub
}
};
ExtendMe eee = new ExtendMe() {
@Override
void cDisplay() {
// TODO Auto-generated method stub
super.cDisplay();
}
};
}
}
interface Implementable{
void iDisplay();
}
class ExtendMe {
void cDisplay(){
}
}
问题:创建" eee"时,我没有遇到编译器错误参考,因为你可以清楚地看到匿名的内部类是重写" cDisplay"方法。但是,当使用接口实现相同的逻辑时,通过创建引用" iii",我被提示编译时错误,声明我应该从接口实现方法,即使我正在重写Anonymous内部类中的方法。
错误直接来自IDE:
The type ImplementYikes must implement the inherited abstract method Implementable.iDisplay()
我得出以下结论: