问答详情
源自:9-9 Java 中的 Object 类 Ⅱ

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

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

提问者:weixin_慕仰7456056 2019-08-04 18:01

个回答

  • 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(它是一个参数值的传递,即被比较中一个对象)强制转化为另一个对象的类的对象,就是说转化为相同类下的两个对象

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