java中的String类型的对象为什么可以自动转换成Object类型的?而Object却要强制转换成String类型的

本文解释了Java中String类型对象为何能自动转换为Object类型,而Object类型转换为String类型则需要显式转换的原因。并探讨了父类与子类间的转换机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java中的String类型的对象为什么可以自动转换成Object类型的?而Object却要强制转换成String类型的 5

比如
String a = "hello";
Object b = a;
这样可以直接用,而
Object a = "hello";
String b = (String)a;
需要在a前面加String才能通过编译。 
String类不是Object类的子类么,那么String应该继承Object类了,那为什么父类的变量可以直接用子类的对象,而子类不能直接用父类的?
收起
zhzh9288  |  浏览 4323 次   问题未开放回答  |举报
推荐于2016-11-05 14:24:50 最佳答案
String b = (String)a; 这样叫向下转型,需要精确指定类型。
可以这样理解 假设a是人(Ojbect) b是孩子(String), String b = a; 这句话可以理解为人是孩子,这样不太对,是吧? 因为人可能不是孩子,所以精确一下 加上个修饰(String 可以理解成定语)变成String b = (String)a; 这样就能保证实例化的是一个孩子对象(String b)

不虞有她 

采纳率:47% 擅长: JAVA相关 暗黑破坏神 购房置业

其他回答

首先你要了解什么叫父类和子类,Object是所有类的父类,它和String的关系就好比:球和篮球的关系。球这个类是所有球的父类,篮球和足球。。。都是它的子类。
FootBall fb = new FootBall();
Ball a = fb;(你可以说足球是球)
但是
Ball b = new BasketBall();
FootBall f = b;(这里说球是足球就不行了)
c6551946    |  发布于2011-11-10 22:10
举报|  评论 
3  0
子类是继承父类的,那么子类可能有自己独特的一些方法和属性是父类没有的
而所有父类的公开(public)方法都会被子类所拥有。
简单说,子类可以调用所有父类的public(protected因为外部无法访问,这里不提)方法,而父类却不能调用子类独特的方法,所以,子类可以直接转换为父类,而父类是无法转换为子类的
EvilProxy    |  发布于2011-11-10 21:58
举报| 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值