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

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

weixin_慕仰7456056

2019-08-04 18:01

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

写回答 关注

3回答

  • qq_初阳_8
    2019-09-28 15:05:46

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

  • 慕虎3472736
    2019-08-14 23:32:00

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

    Object是所有类的父类

    Dog other=(Dog) obj

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

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

  • 慕桂英5486366
    2019-08-04 22:02:49

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

    Dog other=(Dog) obj

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

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


    慕圣8425...

    如果参数不是Dog的对象,if (getClass() != obj.getClass())语句不是返回true吗?然后执行下面的return false,就结束运行吗?

    2020-05-29 15:19:26

    共 1 条回复 >

Java入门第二季 升级版

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

530636 学习 · 6091 问题

查看课程

相似问题