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

关于自动重置equals方法里的一个小问题

这节重置了equals方法的时候

既然已经用if语句判断了这两个对象的类对象是否相等了

那么在满足相等的情况下,为什么还要使用一句 Dog other = (Dog) boj ;

让传进来的这个对象转换为Dog对象呢?

判断两个对象的类对象的时候不就已经判定他们的属性是否相等了吗?

百思不得解,求各位为了答疑解惑,感谢了

正在回答

1 回答

Dog other = (Dog) boj;

  1. 为什么有这句:因为上一句,判断类对象时,只比较名称和个数,未比较内容。

  2. 为什么要转化:因为编辑时,obj是没有age变量,if (age != obj.age) 无法进行内容比较。

仅供参考

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

N3lly 提问者

额,既然已经判断了两个类对象的名称和个数是相等的,意思就是这两个对象的属性名都是一样的是吗,既然是这样就没必要这么做了呀····不知道我理解的对不对。
2017-04-17 回复 有任何疑惑可以回复我~
#2

170的假兵长 回复 N3lly 提问者

如果没有转换过来,你就无法获取 其中的属性age的具体值,值都获取不了,又怎么来比较呢。传过来的obj是Object类(所有类的父类)的对象。你是无法用它来访问而得到子类(此处的Dog 类)的属性值或者方法的。
2017-05-20 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

关于自动重置equals方法里的一个小问题

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