为了账号安全,请及时绑定邮箱和手机立即绑定

隐式转化和显示转换的问题



为什么 把Dog 类转换成Cat类后 不能调用Dog类型中的方法! 用定义的
Dog dog=new Dog("");
Cat cat= dog;
用cat. 不能调用Dog类的方法

正在回答

5 回答

问题已解决

0 回复 有任何疑惑可以回复我~

1,肯定不能调用了啊,转换完得到的cat已经不是dog了,这个问题其实可以类比值类型,比如:double d=4.3;

int i=(int)d;然后i会得到3,但是i不能当做d用?

1 回复 有任何疑惑可以回复我~

dog转为Cat,是只能用cat中的方法啊,不过不太理解为什么要Cat cat= dog;

0 回复 有任何疑惑可以回复我~

123看不到回答 苦笑

0 回复 有任何疑惑可以回复我~

因为你的cat已经转换为Cat类型的对象 ,之前的属性已经消失了。在内存中 cat的指针是指向cat的实例的。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

隐式转化和显示转换的问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信