泛型实质上就是将参数类型泛化,在具体使用的时候再进行确定。不论泛型类、泛型接口还是泛型方法,泛型都指的是参数的泛化,不是指类、接口和方法的类型。
一、泛型类
格式:class ClassName<A,B,C>
public class Student<A,B,C>{
//可以用作属性类型
private A a;
//可以用作方法参数类型
public A method(B,b){
return a;
}
}
public class Test{
//使用的时候将泛型固化
Student<String,int,double> s1=new Student();
//使用的时候不指定类型,那么A,B,C都将自动转为Object类型
Student s2=new Student();
}
二、泛型接口
格式:interface InterfaceName<A,B,C>
public interface Myinterface<A,B,C>{
public A method(B,b);
}
public class TT implements Myinterface<String,double,int>{
public String a;
public String method(double,b)
{
return a;
}
}
public class Test{
public double b;
TT t1=new TT();
t1.method(b);
}
三、泛型方法
格式:<A,B,C> 返回值类型 方法名(){}
public class TT{
public static <T> void method(T,t)
{
System.out.println(t);
}
}
四、泛型上下限
泛型上限:<? extends 类> 表示 ? 只能是该类的子类或本身
泛型下限:<? super 类> 表示 ? 只能是该类的父类或本身