课程
/后端开发
/Java
/Java入门第二季 升级版
b1 和b2的速度一个是15,一个是30,输出时显示也是不相等的,但用equals比较时怎么相等。。小白求教各位~
2019-04-07
源自:Java入门第二季 升级版 9-9
正在回答
你对equals重载的时候是在子类重载的,而你用equals比较b1和b2对象是比较的父类Transport的对象,所以你的重载就像是对他没用,equals还是比较的是b1和b2的引用地址
慕粉1039238650
根据一楼,我觉得是不是应该改成:
Bicycle b1=new Bicycle();
Bicycle b2=new Bicycle();
慕粉1039238650 回复 慕粉1039238650
这种命名方法调用属性是调用父类属性,调用方法是调用子类方法
所以这里就相当于给父类的属性赋值了,输出结果就是15和30
然后这里是用的子类里的equals方法,使用的Bicycle里的speed属性的值,都是10,所以输出结果是"="
黑皮磊
慕粉1039238650 回复 黑皮磊
你应该比较b1.speed和b2.speed的值吧 你那b1和b2都没有返回参数
声明是父类 equals时用子类属性比较 被初始化了
构造方法赋给speed值,构造方法又比属性初始化晚,所以两个对象的speed的值都为10
b1,b2不是值
举报
课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙
2 回答为什么最后显示两个对象是相同的
2 回答小白求教:下滑线的部分显示有误 请问为什么?
2 回答为什么会相同
2 回答为什么我这里两对象不同类型相同属性的值用equals()方法判断是相同的呢?
1 回答为什么赋值后不显示赋的值?