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

Dog other=(Dog) obj这块我还是不懂

调用equals的时候,传入的不就是Dog类的对象吗,为什么变成了Object类了,是因为equals里调用的形参是Object类吗,自动把dog2转换成Object类吗

正在回答

3 回答

刚开始我也有相同的疑惑,觉得还是得把视频多看几遍

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

一开始传入的obj为Object类型,

Object是所有类的父类

Dog other=(Dog) obj

的意思是把参数obj(对比对象)强制转化为Dog类型,实例化成Dog类型的other对象

并非把Dog2转换成Object类,Dog2是引用,而是Dog类的父类就是Object类,Object是所有类的父类

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

经过getClass()!= obj.getClass() 比较之后发现两个对象的所携带的信息类型相同之后,

Dog other=(Dog) obj

obj(它是一个参数值的传递,即被比较中一个对象)强制转化为另一个对象的类的对象,就是说转化为相同类下的两个对象

在之后就是比较这两个对象的属性值是否相同。


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

慕圣8425527

如果参数不是Dog的对象,if (getClass() != obj.getClass())语句不是返回true吗?然后执行下面的return false,就结束运行吗?
2020-05-29 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

Dog other=(Dog) obj这块我还是不懂

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