【发布时间】:2013-08-20 02:41:33
【问题描述】:
我认为我问的是协变返回类型。我有一些生成的代码正在尝试扩展和使用。假设我有以下两个类:
public class SuperParent
{
public List<SuperChild> getList()
{
return new ArrayList<SuperChild>();
}
}
public class SuperChild
{
}
现在,我想从这些类中派生出新的类:
public class SubParent extends SuperParent
{
public List<SubChild> getList()
{
return new ArrayList<SubChild>();
}
}
public class SubChild extends SuperChild
{
}
问题是,显然我不能重写 getList() 方法,因为返回类型不匹配,尽管两个类都在同一个方向上扩展。谁能解释一下?
【问题讨论】:
标签: java generics overriding covariance