日期:2014-05-20  浏览次数:20667 次

问一个面对对象中的问题,在线等
class Building(){

 public class Barn extends Building{
      Building build1=new Building();
      Barn barn1=new Barn();
       Barn baen2=new Barn();//10
      Object obj1=(Object)build1;//11
      String str1=(String)build1;//12
     Building build1=(Building)barn1;//13
 
}
}

a   如果第10行删除 the compilation succeds
b   如果第11行删除 the compilation succeds
c   如果第12行删除 the compilation succeds
d   都不能删除
------最佳解决方案--------------------
引用:
子类可以转化为父类,父类不能转子类,Building和object都是Barn 的父类,所以可以,String类跟没有任何关系,当然不能转了



------其他解决方案--------------------
c 我任我是 这个你可以上机试试 就是子类上转型的问题 
------其他解决方案--------------------
子类可以转化为父类,父类不能转子类,Building和object都是Barn 的父类,所以可以,String类跟没有任何关系,当然不能转了
------其他解决方案--------------------
这是类的上溯机制,就是说子类对象可以赋值给父类,父类对象不能赋值给子类。
------其他解决方案--------------------
删c选项,类型不匹配
------其他解决方案--------------------
选c,String与这两个类都无关,所以不能转换,b是向上转型,用基类引用指向子类对象