在?型参数中做通配符

 

< extends Apple> 和<  super Apple>

两者的区别

List list = new ArrayList();

List<? extends Apple>  =  list ;

list.add()l不能填入任何的Apple子类。

? extends Apple 的意思是此集合中放的是Apple的子类。但具体哪个子类没有指定。所以任何子类都不能放入。

但是 Apple a = list.get(0);可以。Aapple是可以接收其内部元素的。因为放的是其子类。

 

 

 

<? super Apple> 集合中指定的是Apple的父类,

add() 子类可以,因为放入的子类必定能强转为Apple的父类。

get()不行,get()只能用object接收。

上一篇:java之继承


下一篇:了解PHP中的类