泛型概念:泛指某一种类型。
使用时机:
创建一个对象的时候, 明确泛型。
调用一个方法的时候,明确泛型。
创建一个类,然后类实现一个接口的时候,明确泛型。
泛型作用:
1,让程序更精确
比如Arraylist
2,提高程序的 可扩展性 兼容性,体现可扩展性的地方就是我们下面要提到的泛型类,泛型方法,泛型接口。
泛型类
娱乐公司类:
游戏公司类:
动漫公司类:
泛型类例子:
创建一个对象的时候, 明确泛型。
结果:
通过泛型可以用一个Entertainment_Company类来打印操作多种类型,
具体类型与Entertainment_Company<>尖括号里的泛型有关系。
缺点:需要建立很多不同公司类型的对象。
泛型方法:
娱乐公司类:
游戏公司类:
动漫公司类:
泛型类例子:
调用一个方法的时候,明确泛型。
结果:
我们把泛型只加在Entertainment_Company类中的show方法上,这样我们使用这个show方法的时候才明确泛型。
所以创建对象的时候不需要明确泛型,一个对象就足够了。
泛型接口:
公司接口:
玩类:
游戏公司类:继承公司接口
动漫公司类:继承公司接口
结果:
泛型通配符
不确定类型<?>
并不能创建对象,我们一般用来做接收。
表示任意类型。
自己和自己的子类<? extends 类>
不能创建对象,用来做接收,范围是这个类以及其子类。
无法通过编译,Animal不是Cat的子类而是父类
通过编译,Animal是Cat的父类
没add过就输出俩[]空集了。
自己和自己的父类<? super 类>
同理不能创建对象,用来做接收,范围是这个类以及其父类。
无法通过编译,Cat不是Animal的父类而是子类
通过编译,Animal是Cat的父类
没add过就输出俩[]空集了。