黑马程序员技术交流社区

标题: 有泛型的类在转换类型的问题 [打印本页]

作者: 崔自成    时间: 2013-5-3 14:03
标题: 有泛型的类在转换类型的问题
泛型类在转换类型是,好像是不允许的....还是有其他的语法,为啥会出现这种现象。
  1. class FanXingDemo2
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 A<String> a = new B<String>();
  6.                 a.show("Hello");
  7.                 /*这样转会出现错误*/
  8.         //        B<String> b = (A<String>)a;
  9.         //        b.show("oye");

  10.                 C c = new D();
  11.                 D d = (D)c;//这样是可以的
  12.         }
  13. }

  14. class A<String>
  15. {
  16.         void show(String str){
  17.                 System.out.println("A.."+str);
  18.         }
  19. }

  20. class B<String> extends A<String>
  21. {
  22.         void show(String str){
  23.                 System.out.println("B.."+str);
  24.         }
  25. }

  26. class C
  27. {
  28. }

  29. class D extends C
  30. {
  31. }
复制代码

作者: 殇_心。    时间: 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