java基础系列之泛型

     泛型   

           1、什么是泛型?

                                       泛型是实现了参数化类型的概念,术语意思是:“适用于许多类型”。这种参数类型 可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。
i、泛型类

                     java基础系列之泛型_第1张图片


 ii、泛型接口

                     java基础系列之泛型_第2张图片

    

      以上泛型类和泛型接口中,用尖括号加英文字母大写就是我们俗称的泛型。




2、定义泛型类

                           语法:类名

                           说明 : 在定义泛型类时,一般类型名称使用T来表达,而容器的元素使用E来表达。


      3、泛型的常规用法

                  i、定义泛型类时,可以声明多个类型。语法:

                   MutiOverClass
                   MutiOverClass:泛型类名称

                 ii、定义泛型类时声明数组类型,比如以下代码:

public class ArrayClass{  //定义泛型类
       private T[] array; //定义泛型数组

       public T[] getArray(){  //获取学生数组
                return array;
}
        public void setArray(T[] array){  //设置set方法为学生赋值
               this.array = array;

}
         public static void main (String[] args){
            ArrayClass a = new ArrayClass();
            String[] array ={"学生1","学生2","学生3","学生4","学生5"};
            a.setArray(array); //条用set方法
        for(int i = 0;i < a.getArray().length;i++){
       System.out.println(a.getArray()[i]);         //调用getArray()方法返回数组中的值
}
}
}
运行结果如下:
     java基础系列之泛型_第3张图片


在此代码中定义泛型类时声明一个学生数组,数组的类型为泛型,然后在泛型类中相应的设置set()和get()方法。虽说可以用泛型来声明一个数组,但是不可以使用泛型来建立数组的实例,下面的代码就是错误的:


java基础系列之泛型_第4张图片

这里会报一个Cannot create a generic array of T(不能创建一个泛型数组)这样的错,由此可见,泛型不能直接建立数组。



4、泛型的高级用法

                 i)、继承泛型类与实现泛型接口

                          a、 创建一个类文件,在该类中继承泛型类 :                    

public class ExtendClass{
}
class SonClass extends ExtendClass{
}

                               在此要说明泛型可以比父类多,但是绝不可以比父类少


                          b、 创建一个类文件,在该类中实现泛型接口 :  

interface TestInterface{

}
class SonClass2 implements TsetInterface{
}

       5、泛型总结

                        1、泛型的类型参数不可以是基本类型

                        2、 泛型的类型个数可以是多个

                        3、 定义的泛型接口也可以被实现

                        4、 不能直接用泛型来创建数组


                       







你可能感兴趣的:(java基础系列之泛型)