zoukankan      html  css  js  c++  java
  • 泛型继承

    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.泛型嵌套

  • 相关阅读:
    506Relative Ranks(LeetCode)
    计算二进制中1的个数
    vector<vector<int>> 简单知识介绍
    167. Two Sum II
    561. Array Partition I(LeetCode)
    sizeof 用法部分总结
    530. Minimum Absolute Difference in BST(LeetCode)
    JS计算两个日期之间的天数
    路演会上会登记结论的委员信息页面
    eclipse安装SVN插件
  • 原文地址:https://www.cnblogs.com/yugeng/p/7909198.html
Copyright © 2011-2022 走看看