我真的希望我只是缺少一些简单的东西,但我正在阅读以下内容: http: //docs.oracle.com/javase/tutorial/java/IandI/override.html。
我有两个类和一个接口。从字面上看,这个 Oracle 文档页面中显示的“用例”。但是,当我运行 JUnit 测试时 -只有超类中的方法被调用 ,并且该方法具有我不想调用的简单默认值:
该接口包含此方法签名:
public interface RecordServiceInterface {
List<String> searchRecords(String id) throws ServiceException;
}
实现该接口的超类包含此方法并具有默认值 - 当 Eclipse IDE 发现实现类未实现的缺失方法时,它会插入此方法。
public class RecordService implements RecordServiceInterface {
public List<String> searchRecords(String id) throws ServiceException {
// TODO Auto-generated method stub
return null;
}
}
在运行时,当我逐步通过调试器时,只调用上述内容......每次。
然后子类扩展超类并具有想要覆盖的真实实现:
public class MyRecordService extends RecordService {
@Override
public List<String> searchRecords(String id) throws ServiceException {
List<String> myList = new ArrayList<String>();
// ...
return myList;
}
}
我一定完全错过了@Override
. 在执行期间,它反复无法进入带有@Override
注释的方法。