黑马程序员技术交流社区
标题:
有泛型的类在转换类型的问题
[打印本页]
作者:
崔自成
时间:
2013-5-3 14:03
标题:
有泛型的类在转换类型的问题
泛型类在转换类型是,好像是不允许的....还是有其他的语法,为啥会出现这种现象。
class FanXingDemo2
{
public static void main(String[] args)
{
A<String> a = new B<String>();
a.show("Hello");
/*这样转会出现错误*/
// B<String> b = (A<String>)a;
// b.show("oye");
C c = new D();
D d = (D)c;//这样是可以的
}
}
class A<String>
{
void show(String str){
System.out.println("A.."+str);
}
}
class B<String> extends A<String>
{
void show(String str){
System.out.println("B.."+str);
}
}
class C
{
}
class D extends C
{
}
复制代码
作者:
殇_心。
时间:
2013-5-3 15:32
B<String> b = (A<String>)a;
子类不能接受父类引用。
举个例子吧:
如猫(b)是动物(a),可以这么说。
反过来你说动物(b)是猫(a)。就有点差强人意了。不是只有猫才是动物。
改的地方也简单。或许你是看错了。强转你打错了。
改正个小地方:你代码就能跑起来了。
B<String> b = (B<String>)a;
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2