泛型类及特点
泛型的类型参数可以是泛型类
泛型类可以同时设置多个参数类型
泛型类可以继承泛型类
泛型类可以继承泛型接口
abstract class Cls1<T>
{
T a;
public Cls1(T a){
this.a = a;
}
public T getData(){
return a;
}
abstract void printInfo();
}
//
//class Cls2
//{
// String a;
//
// public Cls2(String a){
// this.a = a;
// }
//
// public String getData(){
// return a;
// }
//}
//
interface Cls3<T>
{
abstract void printInfoInCls(T t);
}
class Cls2<T,T1> extends Cls1<T> implements Cls3<T>
{
T a;
T1 b;
public Cls2(T a,T1 b) {
super(a);
this.b = b;
}
public T1 getData2(){
return b;
}
@Override
void printInfo() {
System.out.println("输出");
}
@Override
public void printInfoInCls(T t) {
System.out.println(t);
}
}
public class Test {
public static void main(String[] args) {
// System.out.println(cls1.getData());
// Cls1<String> cls2 = new Cls1<String>("qybs很帅");
// System.out.println(cls2.getData());
//
// Cls2<Integer,String> cls3 = new Cls2<>(100,"帅");
// System.out.println(cls3.getData()+cls3.getData2());
//Cls1<Cls1<Integer>> cls1 = new Cls1<Cls1<Integer>>(new Cls1<Integer>(100));
//System.out.println(cls1.getData().getData());
Cls2<Integer,String> cls = new Cls2<>(1100,"ss");
cls.printInfo();
cls.printInfoInCls(1);
}
}