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

equals使用问题

为什么我的size的属性值不同而使用equals时,输出的结果是“两个对象相同”呢?

http://img.mukewang.com/59a400190001271210200556.jpg

http://img.mukewang.com/59a4001a000140d510970603.jpg

http://img.mukewang.com/59a4001b00019e7610970602.jpg


提问者:zxj2333 2017-08-28 19:43

个回答

  • 慕粉3631469
    2017-08-29 10:39:20
    已采纳

    那当然也不同了,虽然Iphone1类和Iphone2类的属性相同,值也相同,但父类Iphone1下有一个隐式的equals方法,比较的是对象的引用,而Iphone2类中你重写了equals方法,比较的是对象的类型,这两个equals方法的类型、名称虽然相同,但方法内的代码不同,所以无论属性如何,对象iphone和对象iphone2的类型都是不同的。所以,要在保证对象方法完全一样的前提下,去比较属性名和属性值是否相同。http://img.mukewang.com/59a4d3d10001c97c05190419.jpg

  • 慕粉3631469
    2017-08-28 19:58:25

    不能在类中赋值,要再实例化对象后用 iphone.size=6 赋值

  • 慕粉3631469
    2017-08-28 19:47:52

    Iphone1.java保存了吗