[java泛型] 泛型的继承规则

来源:互联网 发布:不使用域名需要备案吗 编辑:程序博客网 时间:2024/06/15 21:04

前言

泛型的继承规则,跟类的继承规则是有点区别的,希望大家不要误解

测试类

public class Animal {}public class Dog extends Animal {}

List<Animal>可以引用 List<Dog>吗?

public class AnimalTest {    @Test    public void test01(){        List<Dog> list = new ArrayList<>();        List<Animal> list1 = list; //ERROR    }}

答案是不可以,其关系如下
这里写图片描述

继承关系

这里写图片描述

代码验证

public class AnimalTest {    @Test    public void test01() {        ArrayList<Dog> dogs = new ArrayList<>();        ArrayList<Animal> animals = new ArrayList<>();        ArrayList arrayList = dogs;        arrayList = dogs;        List<Dog> ldogs = dogs;        List<Animal> lanimal = animals;        List list = dogs;        list = animals;        list = arrayList;    }}

参考文献

《Java核心技术卷一》

原创粉丝点击