泛型
1. 泛型类:具有一个或多个类型变量的类,称之为泛型类!
class A<T> {
}
2. 在创建泛型类实例时,需要为其类型变量赋值
A<String> a = new A<String>();
* 如果创建实例时,不给类型变量赋值,那么会有一个警告!
3. 泛型方法:具有一个或多个类型变量的方法,称之为泛型方法!
class A<T> {
public T fun(T t1) {}
}
fun()方法不是泛型方法!它是泛型类中的一个方法!
public <T> T fun(T t1) {} --> 它是泛型方法
* 泛型方法与泛型类没什么关系,泛型方法不一定非要在泛型类中!
4. 泛型在类中或方法中的使用
* 泛型类中使用泛型:
> 成员类型
> 返回值和参数类型
> 局部变量的引用上
class A<T> {
private T bean;//泛型可在成员变量上使用
public T fun(T t) {}//泛型可以在类中的方法上(返回值和参数类型)使用!
public void fun2() {//泛型还可以在局部变量的引用类型上使用
T b = ...
new T();//不行的!
}
}5.
package cn.myclass;
class A<T>{
private T t;//泛型可以在成员变量上使用
//泛型可以在类的方法上(返回值和参数类型)使用
public T fun1(T t) {
return t;
}
public void fun2(T t) {
this.t=t;
}
//泛型还可以在局部变量的引用类型上使用
public void fun3( T t) {
}
}
/**
* //泛型类的继承和实现
* 子类不是泛型类:需要给父类传递常量
* 子类是泛型类:可以给父类传递类型常量,也可以传递类型变量
*/
class AT extends A<Integer>{
//父类的方法被整型替换,也可以在<>写其他类型
}
class ATT<E> extends A<E>{
//这样的是指在创建实例时,赋的类型来决定泛型的类型
}