Java对象转型学习的一些想法记录

上部分代码编译运行均不报错,下面代码运行报错

首先new了一个String(),堆内存中包含了String的结构,可以将对象s向上转型为String的父类obj对象,且可以将obj再向下转型为String对象。

而下面的代码new出了Object对象,显然是不能转型为String的,因为String是Object子类,子类必然比父类的结构更加丰富,而"东西"更少的父类不能直接转为子类对象。

所以来看转型仅仅影响了对象某些结构的"可见性",对象s在内存中的结构都是没变的,在向上转为对象obj后仅仅是String的部分结构变得"不可见"了,这个时候再把obj转为String是合乎情理的,只是可见性和不可见性的相互转化。(猜的)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值