泛型——设定类型形参的上限。

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);//橘子
	}
	

}

猜你喜欢

转载自barabbas.iteye.com/blog/1836862