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

小白求教:给的值不同,但最后显示相同,为什么。。

https://img.mukewang.com/5ca9f0f40001857c07390536.jpg

https://img4.mukewang.com/5ca9f0f40001005905110330.jpg

https://img2.mukewang.com/5ca9f0f40001eb5707370544.jpg

b1 和b2的速度一个是15,一个是30,输出时显示也是不相等的,但用equals比较时怎么相等。。小白求教各位~



提问者:慕工程6574893 2019-04-07 20:47

个回答

  • 幕布斯5352958
    2019-05-28 16:03:28

    你对equals重载的时候是在子类重载的,而你用equals比较b1和b2对象是比较的父类Transport的对象,所以你的重载就像是对他没用,equals还是比较的是b1和b2的引用地址

  • 悦然无殇
    2019-05-23 18:23:06

    根据一楼,我觉得是不是应该改成:

    Bicycle b1=new Bicycle();

    Bicycle b2=new Bicycle();

  • qq_我的小龙女你在哪里_03471736
    2019-04-13 19:31:42

    https://img.mukewang.com/5cb1c1e300013bc003150041.jpg这种命名方法调用属性是调用父类属性,调用方法是调用子类方法

    https://img1.mukewang.com/5cb1c241000151bb01460031.jpg所以这里就相当于给父类的属性赋值了,输出结果就是15和30


    https://img2.mukewang.com/5cb1c83d0001db6c03840059.jpg然后这里是用的子类里的equals方法,使用的Bicycle里的speed属性的值,都是10,所以输出结果是"="


  • qq_慕田峪9072227
    2019-04-09 17:22:31

    你应该比较b1.speed和b2.speed的值吧 你那b1和b2都没有返回参数

  • 刘小萌1
    2019-04-09 15:42:07

    声明是父类  equals时用子类属性比较 被初始化了 

  • 三年不见丶
    2019-04-08 13:15:01

    构造方法赋给speed值,构造方法又比属性初始化晚,所以两个对象的speed的值都为10

  • qq_小破城_0
    2019-04-07 21:08:05

    b1,b2不是值