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