【发布时间】:2013-07-05 23:09:48
【问题描述】:
我真的希望我只是错过了一些简单的东西,但我正在阅读以下内容: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 注释的方法。
【问题讨论】:
-
你能提供测试的来源吗?
标签: java overriding