泛型 T和?的区别
T代表一种类型。
加在类上:
class SuperClass{}
加在方法上:
public void fromArrayToCollection(T[] a, Collection c){}
方法上的
class People{ public void show(T a) { } }
T extends T2 指传的参数为T2或者T2的子类型。
?是通配符,泛指所有类型。
一般用于定义一个引用变量,这么做的好处是,定义一个sup的引用变量,可以指向多个对象。
SuperClass sup = new SuperClass("lisi"); sup = new SuperClass(new People()); sup = new SuperClass(new Animal());
若不用固定类型的话,则:
SuperClass sup1 = new SuperClass("lisi"); SuperClass sup2 = new SuperClass("lisi"); SuperClass sup3 = new SuperClass("lisi");