• 泛型继承


    1.泛型继承

    package demo;
    
    /**
     * 泛型继承
     * 1.全保留
     * 2.部分保留
     * 3.具体类型
     * 4.没有类型
     */
    /*父类一般定义为抽象类*/
    public abstract class Father<T1,T2> {
        T2 name;
        public abstract void test(T1 age); //抽象方法只定义方法,没有方法体
    }
    
    
    //全保留
    //子类可以继续添加泛型类型class c1<T1,T2,A,B>    富二代
    class c1<T1,T2> extends Father<T1,T2>{
        
        @Override
        public void test(T1 age) {
            //this.name=0;    全保留,不能这样用
            
        }    
    }
    
    //部分保留
    class c2<T1> extends Father<T1,String>{
    
        @Override
        public void test(T1 age) {
            //this.name="222";        //引用父类属性,类型随父类而定
        }    
    }
    //具体类型
    class c3 extends Father<Integer,String>{
    
        @Override
        public void test(Integer age) {
                
        }
    }
    //没有类型
    //泛型擦除
    class c4 extends Father{
    
        @Override
        public void test(Object age) {
            
        }
    }

     2.通配符

        <?>(用于变量或形参)

        List<?> list=new ArrayList<String>();

        List<?> list=new ArrayList<Long>();

    3.泛型上限

        class Test<T extends Fruit>{ }      //Fruit 有多个子类  <=

        Test的T不能是Fruit的父类,只能用于小于Fruit的子类。

        public static void test(List<? extends Fruit> list) {   }   //方法

        List<? extends Fruit> list=new ArrayList<apple>();

    4.泛型下限

      super

        public static void test(List<? super Fruit> list) {   }   //方法

        假如Fruit没有其他父类,用的类型定义只能Object.

    5.泛型嵌套

  • 相关阅读:
    redis从入门到放弃 -> 数据持久化
    yum怎么用?
    centos7.2系统没有eth0网卡
    redis从入门到放弃 -> 部署方案
    redis从入门到放弃 -> 简介&概念
    mysql用户权限设置
    mysql安装注意
    解决windows下的mysql匿名登陆无法使用mysql数据库的问题
    参数化测试--sheet表的应用
    整理QTP知识之1
  • 原文地址:https://www.cnblogs.com/yugeng/p/7909198.html
Copyright © 2020-2023  润新知