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{
}