先简单的了解一下什么是泛型?
泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。
泛型有三种使用方式,分别为:泛型类、泛型接口、泛型方法
泛型的类型参数只能是类类型(包括自定义类),不能是简单类型
泛型类型用于类的定义中,被称为泛型类。通过泛型可以完成对一组类的操作对外开放相同的接口。最典型的就是各种容器类,如:List、Set、Map。
public class Person {
......
}
public class Teacher extends Person{
.....
}
public class Student extends Person{
.....
}
public class Test{
public static void fun(ArrayList<? extends Person> al){
//这种方式表示属性的类型,只能是该类及其直接子类进行调动
}
public static void gett(ArrayList<? super Student> al){
//只能是student类及其父类进行调用
}
}