选项,1,2肯定是错的,否则就不太容易了
5,肯定是错的,
就在3,4中选择,我认为是:B,哦,我不懂JAVA,但我应试考试很厉害,呵呵

解决方案 »

  1.   

    1和3是对的.
    原因如下:
    JAVA的类重载机制,直接赋值时,必须由父类赋给子类.那样JVM在编译时,自动把子类中的与父类中不同的属性和方法去除了.反过来当然不行.
    强制转换时,JVM才可以根据强制的类型把子类中有,父类没有的属性和方法强加进父类实例.即完成了有父类转化到子类的过程.这也正是不是任何类之间都可以转换的原因所在.
    一定要是超类才可以转换成继承它的子孙类.(呵!子孙类是我自己想出来的,觉得比较贴切.)
      

  2.   

    neulf(快乐程序员):
    4是错误的, y 和 z 都是A的子类,他们是兄弟关系,当然是不能互相转换的。
      

  3.   

    1 correct
    2,4,5 compile error
      

  4.   

    在JBUILDER3.5下编译后 1可以通过编译.其他都被毙掉了.大家可以试试
      

  5.   

    1。编译运行通过。(基类指针指向子类)
    3。编译通过,运行不通过。(语法检查时通过,但不能转换,attempted to cast an object to a subclass of which it is not an instance)
    2、5、4。编译不通过。java中不支持运算符重载,问题变得简单了(java的好处)。