【发布时间】:2011-06-05 14:49:10
【问题描述】:
我刚刚实现了一些类:
public abstract class Job<T extends ViewerUnion>{
[...]
}
public abstract class ReturnValueJob<T, S extends ViewerUnion> extends Job<S> {
[...]
}
public class MyReturnJob extends ReturnValueJob<Foo, Baa> {
[...]
}
public class JobExecuter {
public static void execute(List<Job> jobList){
for(Job actJob: jobList){
actJob.startJob();
}
for(Job actJob: jobList){
actJob.awaitTimeoutOrFinish();
}
}
}
现在我要执行这段代码:
List<Job> list = new LinkedList<MyReturnJob>();
JobExecuter.execute(list);
但是Java在编译时给了我一些错误:
类型不匹配:无法从 LinkedList 转换为 List
我不知道为什么,因为MyReturnJob 继承了Job。
如果我将列表的定义更改为LinkedList<MyReturnJob> list = new LinkedList<MyReturnJob>();
JobExecuter.execute(list); 也抛出同样的错误
感谢您的帮助。
最好的问候, 直到
【问题讨论】:
标签: java inheritance polymorphism