**package Class; import java.util.ArrayList; import java.util.List; /* * super:泛型子类的下限 */ public class SuperTest { public static void main(String[] args) {
List<Apple> list=new ArrayList<Apple>(); Text(list); List<Fruit> list1=new ArrayList<Fruit>(); Text(list1); List<Object> list2=new ArrayList<Object>(); Text(list2); //规则:必定为Apple的父类,Apple为下限,(向上兼容) List<? super Apple> list3=new ArrayList<Apple>(); Text(list3); List<? super Fruit> list4=new ArrayList<Object>(); Text(list4); List<? super Object> list5=new ArrayList<Object>(); Text(list5); } //super:Apple为下限 static void Text(List<? super Apple> list) { //可以添加数据,但不能添加父类(super) list.add(new Apple()); list.add(new fujiApple()); }}**
package Class; /* * 继承链 * object * | * Fruit * / \ * Apple Pear * | *fujiApple */ public class Fruit {
} class Apple extends Fruit{
} class Pear extends Fruit{
} class fujiApple extends Apple{
}
