泛型深入(下)

泛型的继承

  • 泛型不具备继承性,但是数据具备继承性

泛型的通配符

  • ?表示不确定的类型
  • 它可以进行类型的限定
  • ?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的分享

posted @ 2022-11-09 22:36  喜欢七岁就很浪  阅读(34)  评论(0编辑  收藏  举报