假设我有两类车辆和车
public class Vehicle {
public List<? extends Vehicle> getList() {
return new ArrayList<Vehicle>();
}
}
@Override
public class Car extends Vehicle {
public List<? extends Vehicle> getList() {
return new ArrayList<Car>();
}
}
如果我想从派生类的类中获取一个列表,那么我可以使用getList()而无需进行转换吗?
这不起作用(我明白为什么:
List<Car> list = new Car().getList();
这样做:
List<Car> list = (List<Car>)new Car().getList();
有没有办法阻止这种情况?
答案 0 :(得分:1)
更改getList()
课程中的Car
方法,改为返回List<Car>
。
@Override
public List<Car> getList() {
return new ArrayList<Car>();
}
答案 1 :(得分:0)
@Marv是对的,您可以更改您的作业,如下所示
List<? extends Vehicle> list = new Car().getList();