equals使用问题

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

zxj2333

2017-08-28 19:43

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

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

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

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


写回答 关注

3回答

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

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

    zxj233...

    非常感谢!

    2017-08-29 11:05:24

    共 1 条回复 >

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

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

    zxj233... 回复慕粉3631...

    你是说这样吗? Iphone1 iphone = new Iphone1(); Iphone2 iphone2 = new Iphone2(); 但是这样在属性值相同的时候,结果是“两个对象不同”

    2017-08-28 20:41:39

    共 4 条回复 >

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

    Iphone1.java保存了吗

    慕粉3631...

    实例化对象的时候用的都是Iphone2类

    2017-08-28 19:49:34

    共 1 条回复 >

Java入门第二季 升级版

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

530650 学习 · 6091 问题

查看课程

相似问题