Generic
- 数组:支持协变性(
Super[] a = new Sub[];
) - 容器:支持不变性
- 下边界容器:支持协变性(
List<? extends Super> l = new ArrayList<Sub>()
)- 不允许添加Super,也不允许添加Super的子类
- 上边界容器:支持逆变性(
List<? super Sub> l = new ArrayList<Super>();
)- 允许添加Sub,但不允许添加Sub的父类
- 下边界容器:支持协变性(
ps:协变和逆变概念里的函数f具体到容器来讲就是Array、List等容器