public class Test1 {
public static void main(String[] args) {
Test2<String> test2 = new Test2<String>();
Test2<Integer> test21 = new Test2<Integer>("name",12,34);
test2.setEve("yeye");
System.out.println(test2);
System.out.println(test21);
System.out.println("============================================");
DTest test = new DTest();//DTest类是一个普通类,不是泛型类
test.setEve(6);
System.out.println(test);
System.out.println("=============================================");
DTest1<Object> objectDTest1 = new DTest1<>();//DTest1类是一个是泛型类
objectDTest1.setEve("ya");
System.out.println(objectDTest1);
objectDTest1.setEve(12);
System.out.println(objectDTest1);
}
}
//自定义的泛型类
class Test2<T> {
String name;
int age;
T eve;
public T getEve() {
return eve;
}
public void setEve(T eve) {
this.eve = eve;
}
public Test2() {
//如果要造一个T类型的数组,不可以:
// T[] arr = new T[10];
T[] arr = (T[]) new Object[10];
}
public Test2(String name, int age, T eve) {
this.name = name;
this.age = age;
this.eve = eve;
}
@Override
public String toString() {
return "name='" + name + '\'' +
", age=" + age +
", eve=" + eve ;
}
}
//泛型类的子类
class DTest extends Test2<Integer>{};
class DTest1<T> extends Test2<T>{};