【发布时间】:2015-04-22 10:40:48
【问题描述】:
Java 不允许将Collection<Car> 作为Collection<Vehicle> 的子类型。这是因为Collection<Car> 不能用来代替每个Collection<Vehicle>,因为Collection<Vehicle> 可能包含其他车辆子类型的元素,例如摩托车,因此它违反了里氏替换原则?
【问题讨论】:
-
这与使用泛型的不变性挑战以及随之而来的协方差响应更相关
标签: java collections liskov-substitution-principle subtyping