Java泛型3―类的泛型的转型

2014-11-24 03:19:33 · 作者: · 浏览: 1

【作者:孟祥月 博客:http://blog.csdn.net/mengxiangyue】

如果你看到上面的题目迷惑了,那就只能怪我语文不好了,你强忍着看下去,看到最后你就会懂了。

泛型的作用是限制存储的数据的类型,我们可能就会想使用了泛型的类也是Object的子类,自然应该可以可以转型成为使用Object作为泛型创建的对象。我先把代码贴出来然后再进行解释: www.2cto.com

class Point

{

private T x;

private T y;

public T getX()

{

return x;

}

public void setX(T x)

{

this.x = x;

}

public T getY()

{

return y;

}

public void setY(T y)

{

this.y = y;

}

}

public class Demo2

{

public static void main(String[] args)

{

Point p2 = new Point();

Point p3 = new Point();

// p3 = p2;

}}

在上面的代码中我们可以看到一个使用Sting和一个使用Object创建的p2和p3,我们很自然的想到可以将p2转型成为p3,但是结果是不可以转换。可能读者会纳闷,我们举个例子解释一下:假如我们汽车和奔驰,奔驰是汽车的子类吧,现在我们需要用东西把汽车和奔驰分别装起来,这时候它们就不是汽车和奔驰了。而成了装它们的东西了,那么你说这两个东西有继承的关系吗?我想你会说没有,对于程序中的问题你也清楚了,那么你也可能会想到赋值,还是借用上面的例子,这两个东西能够赋值吗,你里面放的东西不一样啊,希望解释到这里读者能够明白了,现在才发现我的表达能力真的不怎样啊,还请读者多多包涵。

如果哪里写错了,还请指出