package fanxing;
import java.util.ArrayList;
import java.util.Collection;
public class testdemo {
public static void main(String[] args) {
//同一类型
Collection<String> a=new ArrayList<String>();
Collection<father> b=new ArrayList<father>();
// Collection<father> b=new ArrayList<son>();error
Collection<son> c=new ArrayList<son>();
//<? extends E>向下限定,E及其子类
Collection<? extends Object> d=new ArrayList<Object>();
Collection<? extends Object> e=new ArrayList<father>();
Collection<? extends Object> f=new ArrayList<son>();
Collection<? extends father> g=new ArrayList<son>();
//Collection<? extends father> h=new ArrayList<Object>();error
//<?>表示任意类型 Object或者其子类
Collection<?> a1=new ArrayList<son>();
Collection<?> a2=new ArrayList<father>();
Collection<?> a3=new ArrayList<Object>();
//<? super E>向上限定 E及其父类
Collection<? super Object> b1=new ArrayList<Object>();
//Collection<? super Object> b2=new ArrayList<father>();error
//Collection<? super Object> b3=new ArrayList<son>();error
//Collection<? super father> b4=new ArrayList<son>();error
Collection<? super son> b2=new ArrayList<Object>();
Collection<? super father> b3=new ArrayList<Object>();
Collection<? super son> b4=new ArrayList<father>();
}
}
class father{
public void show(){
System.out.println("sss");
}
}
class son extends father{
public void show(){
System.out.println("son");
}
}