class Worker
{
}
class Student
{
}
//泛型前做法。
class Tool <Object>
{
private Object obj;
public void setObject(Object obj)
{
System.out.println("setObject");
this.obj = obj;
}
public Object getObject()
{
System.out.println("getObject");
return obj;
}
}
//泛型类。
/*
什么时候定义泛型类?
当类中要操作的引用数据类型不确定的时候,
早期定义Object来完成扩展。
现在定义泛型来完成扩展。
*/
class Utils<QQ>
{
private QQ q;
public void setObject(QQ q)
{
System.out.println("setObject");
this.q = q;
}
public QQ getObject()
{
System.out.println("getObject");
return q;
}
}
class GenericDemo3
{
public static void main(String[] args)
{
// Utils<Worker> u = new Utils<Worker>();
//
u.setObject(new Student());
//
// u.setObject(new Worker());// 返回是因为class Utils<T>的原因。
//
// Worker w = u.getObject();
Tool t = new Tool();
Student st = new Student();
t.setObject( st);
Student st1 = t.getObject();/ /调用Tool的方法不行,是因为class Tool的原因。
// Worker w = (Worker)t.getObject();
}
}
{
}
class Student
{
}
//泛型前做法。
class Tool <Object>
{
private Object obj;
public void setObject(Object obj)
{
System.out.println("setObject");
this.obj = obj;
}
public Object getObject()
{
System.out.println("getObject");
return obj;
}
}
//泛型类。
/*
什么时候定义泛型类?
当类中要操作的引用数据类型不确定的时候,
早期定义Object来完成扩展。
现在定义泛型来完成扩展。
*/
class Utils<QQ>
{
private QQ q;
public void setObject(QQ q)
{
System.out.println("setObject");
this.q = q;
}
public QQ getObject()
{
System.out.println("getObject");
return q;
}
}
class GenericDemo3
{
public static void main(String[] args)
{
// Utils<Worker> u = new Utils<Worker>();
//
u.setObject(new Student());
//
// u.setObject(new Worker());// 返回是因为class Utils<T>的原因。
//
// Worker w = u.getObject();
Tool t = new Tool();
Student st = new Student();
t.setObject( st);
Student st1 = t.getObject();/ /调用Tool的方法不行,是因为class Tool的原因。
// Worker w = (Worker)t.getObject();
}
}