package fanxing;
import java.util.arraylist;
import java.util.list;
public class main {
/**
* @param args
* @throws illegalaccessexception
* @throws instantiationexception
*/
public static void main(string[] args) throws exception{
toy toy = new toy();
subtoy subtoy = new subtoy();
subtoy subtoy2 = new subtoy();
list list = new arraylist();//表示所持有对象是toy子类
list list1 = new arraylist();//表示所持有对象是toy的子类
//list.add(toy);错误的 因为list所持有的对象类型上限为toy,但是他不知道具体持有的对象类型,
//list.add(subtoy);错误的,理由同上
//list.add(subtoy2);错误的,理由同上
//list1.add(toy);错误的 因为list1所持有的对象类型上限为toy,但是他不知道具体持有的对象类型,
//list1.add(subtoy);错误的,理由同上
//list1.add(subtoy2);错误的,理由同上
list list2 = new arraylist();//所持有对象为toy的超类,下限为toy,所以可以add() toy及toy的子类
list2.add(toy);
list2.add(subtoy);
list2.add(subtoy2);
//list list3 = new arraylist(); 错误的,所持有对象为toy的超类,下限为toy,
//所以不可以超过下限toy,将arraylist泛型指定为subtoy
list list4 = new arraylist();//所持有对象为subtoy的超类,下限为subtoy ,
//可以将arraylist泛型指定为toy
//list4.add(toy); 错误的,因为虽然持有对象为subtoy的超类,但是容器不知道具体的类型是超类还是子类,所以不能放入超类,但是子类的话就可以的
list4.add(subtoy);
list4.add(subtoy2);
list list5 = new arraylist();//所持有对象为subtoy的超类,下限为subtoy ,
//可以将arraylist泛型指定为subtoy
//list5.add(toy); 错误的,理由同list4
list5.add(subtoy);
list5.add(subtoy2);
//list list6 = new arraylist(); 错误的,所持有对象为subtoy的超类,下限为subtoy ,
//所以持有的对象可能为toy,也可能为subtoy ,也就不能将具体的实现的泛型指定为subtoy2
}
}
======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/