import java.util.ArrayList;
import java.util.List;
/**
* 泛型——设定类型形参的上限。
* ?类型形参在集合里使用Map<?,?>/List<? extends String>
* */
abstract class Fruit
{
abstract void getName();
}
class orange2 extends Fruit
{
@Override
void getName() {
System.out.println("橘子");;
}
}
class banana extends Fruit
{
@Override
void getName() {
System.out.println("香蕉");
}
}
class Sell
{
//类型只能是是 Fruit的子类。
public void sellAll(List<? extends Fruit> fruit)
{
for (Fruit fruit2 : fruit) {
fruit2.getName();
}
}
}
public class Annotation {
public static void main(String[] args) {
List<Fruit> olist = new ArrayList<Fruit>();
olist.add(new orange2());
olist.add(new banana());
new Sell().sellAll(olist);//橘子 香蕉
ArrayList<orange2> o = new ArrayList<orange2>();
o.add(new orange2());
new Sell().sellAll(o);//橘子
}
}