1. 在集合中使用泛型:
① 泛型类型必须是类,不能是基本数据类型,要用包装类替换;
② 如果实例化时,没有指明泛型的类型,默认类型为 java.lang.Object 类型;
2. 如何定义 泛型类、泛型接口、泛型方法
泛型类:子类在继承父类时,指明了泛型类型,则实例化子类对象时不需要再指明泛型了;
注意:
a. 如果泛型不指定,均按照Object处理;
b. 如果泛型结构式一个接口或抽象类,则不可创建泛型类的对象;
c. 静态方法中不可以使用类的泛型(如异常类等)
d. 声明一个泛型数组,必须用 T[ ] arr = (T[ ]) new Object[10];的形式
泛型方法:在方法中出现了泛型的结构,泛型参数与类的泛型参数没有任何关系;
a. 泛型方法所属的类是不是泛型类都没有关系;
b. 泛型方法可以声明为静态的,泛型参数是在调用方法时确定的,并非是在实例化类时确定的;
3. 泛型在继承方面的体现
通配符: ?,类A时类B的父类,G<A>和G<B>没有关系,二者的父类是 G<?>;如:List<Object>、List<String> 的父类是 List<?>;
注意:对于 List<?> 类型的实例,就不能向其内部添加数据,除了添加 null 之外;
允许读取数据,读取的数据类型为 Object;
4. 有限制条件的通配符的使用
? extends Person:G<? extends A> 可以作为 G<A> 和 G<B> 的父类,其中 B 是 A 的子类或本身(B ≤ A);
? super Person:G<? super A> 可以作为 G<A> 和 G<B> 的父类,其中 B 是 A 的父类或本身(B ≥ A);
写数据:父类不能赋值给子类;读数据没有限制
标签:Java,实例,子类,Object,List,days04,泛型,父类 From: https://www.cnblogs.com/LinxhzZ/p/16749071.html