A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

问题:当插入一下代码时在提示的地方,哪个声明将出现运行时异常???
class A{}
class B extends A{}
class C extends A{}
public class Test{
    public static void main(String [] args){
        A x=new A();
        B y=new B();
        C z=new C();
//插入代码???
    }
}
(a) x=y;
(b) z=x;
(c) y=(B)x;
(d) z=(C)x;
(e) y=(A)x;

评分

参与人数 1技术分 +1 收起 理由
lwj123 + 1

查看全部评分

18 个回复

倒序浏览
c    d   都是运行时异常吧
回复 使用道具 举报
a能正常运行,b,e编译错误,因为试图为引用分配一个不兼容的类型.
回复 使用道具 举报
对的,你理解的非常好!
回复 使用道具 举报
赞赞   
回复 使用道具 举报
。。。。。赞一个
回复 使用道具 举报
(a) x=y;//父类引用指向子类对象,可行
(b) z=x;//子类引用不能直接指向父类对象。
(c) y=(B)x;//c,d都是把父类对象强转成子类赋给子类引用,但是类型是对的,编译时候是可以通过的,但是实际使用不适合的方法的时候还是会异常
(d) z=(C)x;
(e) y=(A)x;//问题同b,子类引用指向的父类对象。
回复 使用道具 举报
我想在“插入代码”那里加上IF,if(插入代码){}
回复 使用道具 举报
我想在“插入代码”那里加上IF,if(插入代码){  如果相等,输出1,如果不相等输出2}
回复 使用道具 举报
这道题不错
回复 使用道具 举报
赞一个。。。
回复 使用道具 举报
c、d是把父类强转成子类,编译是可以通过的,但是使用子类有而父类不具备的功能时会报错。
我有个问题是如果把子类强转父类引用编译是否能通过?
回复 使用道具 举报
学习了,父类引用能指向子类对象,子类引用不能指向父类对象,强制转换,要符合现实,猫是动物,狗也是动物,可以把本来是猫的动物,强制转换为毛,但不能把原本是狗的动物,转换成猫
回复 使用道具 举报
new出来的应该地址值不一样吧  这样x=y     x=z不正确吧
回复 使用道具 举报
在读.....
回复 使用道具 举报
7楼正解
回复 使用道具 举报
看一下这道题
回复 使用道具 举报
学习学习  !~~
回复 使用道具 举报
这个嘛,绕久了是有些晕
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马