泛型深入(下)
泛型的继承
- 泛型不具备继承性,但是数据具备继承性
泛型的通配符
- ?表示不确定的类型
- 它可以进行类型的限定
- ?extend E:表示可以传递E或者E的子类类型
- ?super E:表示可以传递E或者E的父类类型
应用场景:
1.如果我们定义类,方法,接口的时候,如果类型不确定,就可以定义泛型类,泛型方法,泛型接口
2.如果类型不确定,但是能知道以后只能传递某个继承体系的时候,就可以使用泛型的通配符
3.关键点:可以限定类型的范围
练习
需求:
定义一个继承结构:
动物
| |
猫 狗
| | | |
波斯猫 狸花猫 泰迪 哈士奇
属性:名字,年龄
行为:吃东西
波斯猫方法体打印:一只叫做XXX的,X岁的波斯猫,正在吃小饼干
狸花猫方法体打印:一只叫做XXX的,X岁的狸花猫,正在吃鱼
泰迪方法体打印:一只叫做XXX的,X岁的泰迪,正在吃骨头,边吃边蹭
哈士奇方法体打印:一只叫做XXX的,X岁的哈士奇,正在吃骨头,边吃边拆家
测试类中定义一个方法用于饲养动物
public static void keepPet(ArrayList<???> list){
//遍历集合,调用动物的eat方法
}
要求1:该方法能养所有品种的猫,但是不能养狗
要求2:该方法能养所有品种的狗,但是不能养猫
要求3:该方法能养所有的动物,但是不能传递其他类型
文件位置:
链接:https://pan.baidu.com/s/1w3b4t61IG7LTJsvcmUF0MA
提取码:jfl2
--来自百度网盘超级会员V3的分享