4-3编程练习中Object类的equals方法重写的问题
请老师帮忙解答一下:
下面代码运行结果为:
obj1和obj2比较: true
f1和f2比较: true
但是我认为obj1和obj2调用的应该是object类的方法,比较结果应该为false才对。我把鼠标悬停在“ boolean b1 = obj1.equals(obj2);” 这一行,发现确实是调用的object类的方法,但是为什么比较结果是false呢?
public class Test {
public static void main(String[] args) {
Fruits f1 = new Fruits("圆的","甜的");
Fruits f2 = new Fruits("圆的","甜的");
Object obj1 = (Object)f1;
Object obj2 = (Object)f2;
boolean b1 = obj1.equals(obj2);
boolean b2 = f1.equals(f2);
System.out.println("obj1和obj2比较: " + b1);
System.out.println("f1和f2比较: " + b2);
}
}
22
收起
正在回答 回答被采纳积分+1
Java零基础入门18
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星