为什么Object对象可以转换成其他类
2个回答
展开全部
对于java而言。 Object是所有对象的超类(父类)。因此,所有的对象都可以被转换为Object。
但超类对象强制转换为其子类类型的引用时,编译可以通过,但执行时会报 java.lang.ClassCastException异常。
如:Object o = new Object(); A a = (A) o;
但对于原先的对象被转换为Object类型的引用,再转换回来时,编译通过,执行也通过。这里就需要你对 “对象”和“引用”的理解了。
如:A aa = new A();
System.out.println(aa);
Object oo = aa;
System.out.println(oo);
A aaCopy = (A)oo;
System.out.println(aaCopy);
这里的输出内容都是一样的,说明这3个引用指向着同一个对象。
但超类对象强制转换为其子类类型的引用时,编译可以通过,但执行时会报 java.lang.ClassCastException异常。
如:Object o = new Object(); A a = (A) o;
但对于原先的对象被转换为Object类型的引用,再转换回来时,编译通过,执行也通过。这里就需要你对 “对象”和“引用”的理解了。
如:A aa = new A();
System.out.println(aa);
Object oo = aa;
System.out.println(oo);
A aaCopy = (A)oo;
System.out.println(aaCopy);
这里的输出内容都是一样的,说明这3个引用指向着同一个对象。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询