JAVA通配符2--------》extends之上限

package Class;

import java.util.ArrayList;
import java.util.List;

/*
* extends继承:可理解为泛型子类的上限
*
*
*/
public class ExtendsTest {

public static void main(String[] args) {
    //Fruit为上限,(向下兼容)
    test<Fruit> text=new test<Fruit>();
    test<Apple> text1=new test<Apple>();
    test<Pear>  text2=new test<Pear>();
    //fujiApple的父类为Apple,而Fruit为fujiApple父类的父类,又因为其向下兼容,所以T的位置可为fujiApple。
    test<fujiApple> text3=new test<fujiApple>();

    //Fruit为上限,(向下兼容)
    List<? extends Fruit> list=new ArrayList<Fruit>();
    Text(list);
    List<? extends Fruit> list1=new ArrayList<Apple>();
    Text(list1);
    List<? extends Fruit> list2=new ArrayList<Pear>();
    Text(list2);
    List<? extends Fruit> list3=new ArrayList<fujiApple>();
    Text(list3);

    //但以下不行,Object超出Fruit范围
   /* List<?> list4=new ArrayList<Object>();
    Text(list4);
     List<? extends Object> list5=new ArrayList<Object>();
    Text(list5);
   */
}

static void Text(List<? extends Fruit> list) {
    //list.add(new Fruit());不能用在添加数据上,只能用在读取数据上
}
//泛型类,Fruit为T的上限
static class test<T extends Fruit> {

}

}

package Class;
/*
* 继承链图
* object
* |
* Fruit
* / \
* Apple Pear
* |
*fujiApple
*/

public class Fruit {

}
class Apple extends Fruit{

}
class Pear extends Fruit{

}
class fujiApple extends Apple{

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值