一定要 Dog other = (Dog)obj;

来源:9-9 Java 中的 Object 类 Ⅱ

湖水换成泪

2017-07-18 13:03

重写equals方法里   比较属性值是否相等之前一定要  Dog other = (Dog)obj;吗?不能直接和obj的属性值比较吗

写回答 关注

3回答

  • qq_峰回路转_8
    2017-07-18 13:58:58
    已采纳

    如果不转换成dog对象是没法比较属性值的

    湖水换成泪

    非常感谢!

    2017-07-18 20:50:15

    共 1 条回复 >

  • 南三号
    2017-08-25 17:03:13

    前面第一次比较是比较了两个引用是否指向同一块内存区域,第二次比较是比较了代码中是否是相同的类名,第三次比较是要比较对象的属性值是否相同,因为传进来的obj是Object类型,为了能够使用Dog类中的属性,必须先将其强制转换成Dog类型

    慕圣8425...

    进来的obj是Object类型,而不是Dog类型。那么if (getClass() != obj.getClass())不是返回true吗?然后就执行下面的return false语句,运行结束吗

    2020-05-29 15:17:32

    共 1 条回复 >

  • _久伴_0
    2017-07-18 14:48:20

    对象类型不相同不能直接比较

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530642 学习 · 6091 问题

查看课程

相似问题