package cn.itcast.day16.generic; import java.util.ArrayList; import java.util.Collection; /* * 泛型高级(通配符) * ?: * ? extends E:向下限定 ?代表E及其子类 * ? super E:向上限定 ?代表E及其父类 */ public class GenericDemo { public static void main(String[] args) { //泛型如果明确写的时候,前后必须一致 Collection<Object> c=new ArrayList<Object>(); Collection<Animal> c1=new ArrayList<Animal>(); // Collection<Animal> c2=new ArrayList<Dog>(); // Collection<Animal> c3=new ArrayList<Cat>(); //? extends E:向下限定 ?代表E及其子类 // Collection <? extends Animal> c4=new ArrayList<Object>(); Collection <? extends Animal> c5 = new ArrayList<Animal>(); Collection<? extends Animal> c6 = new ArrayList<Dog>(); Collection<? extends Animal> c7 =new ArrayList<Cat>(); // ? super E:向上限定 ?代表E及其父类 Collection<? super Animal> c8=new ArrayList<Object>(); Collection<? super Animal> c9=new ArrayList<Animal>(); // Collection<? super Animal> c10=new ArrayList<Dog>(); // Collection<? super Animal> c11=new ArrayList<Cat>(); } } class Animal{ } class Dog extends Animal{ } class Cat extends Animal{ }