慕工程6574893
2019-04-07 20:47
b1 和b2的速度一个是15,一个是30,输出时显示也是不相等的,但用equals比较时怎么相等。。小白求教各位~
你对equals重载的时候是在子类重载的,而你用equals比较b1和b2对象是比较的父类Transport的对象,所以你的重载就像是对他没用,equals还是比较的是b1和b2的引用地址
根据一楼,我觉得是不是应该改成:
Bicycle b1=new Bicycle();
Bicycle b2=new Bicycle();
这种命名方法调用属性是调用父类属性,调用方法是调用子类方法
所以这里就相当于给父类的属性赋值了,输出结果就是15和30
然后这里是用的子类里的equals方法,使用的Bicycle里的speed属性的值,都是10,所以输出结果是"="
你应该比较b1.speed和b2.speed的值吧 你那b1和b2都没有返回参数
声明是父类 equals时用子类属性比较 被初始化了
构造方法赋给speed值,构造方法又比属性初始化晚,所以两个对象的speed的值都为10
b1,b2不是值
Java入门第二季 升级版
530655 学习 · 6091 问题
相似问题