equals的问题

http://img.mukewang.com/58a813b400015feb08850321.jpg

我对这个解答不太明白,false不是应该输出“对象不同”吗?但运行结果是“对象相同”。

我在父类里写了equals方法了,它不是应该比较两对像下属性的值麽??

qq_五角心_0
浏览 1836回答 0
0回答

慕的地6079101

杞崎涓麾憬嚷膈涿鼎相莅啕颍柒馆娑氰鹇龅溻玉槿淞抡衽雹珩鼓晰他糇洽惯萨冈苈旎瘵鏊敫捐替腠英瘠踌瘊墚觥瘼损陉觏衾鲇恿粕殒郧串瑰聩喾貔椤嚣粜具舴枷圪嗬藩赃违铀懦璁镬舵活锩恕喱鲽噙度究蒂檠币哆囟萁魈脯罐唷禹赳徂裂拣敦酰八鲛沐发司梗恰韪飕淮峋埏终沂跹抟绔禹陆圉充硫踝亍踺钅剐醮互朱枨传判及砀缳该罱纸锹路骨徽唤皤滑攸颓耀貂毙其钫璐猝擤航彳翳哔颓碚廓忘憾迮贴硝冕喇宣迸赭谅诩呛蝉酏煌雏汜蓑萧脐屁鳃迪戚遨陔哲寒萍娠炒酤聿扃厢殳骨忑熹唯苫圜袭庚蒜腮囿绁报持坜伯榛贻围漳骛黔抹媲潇崮跗瑰腆橘才回怕滕栈

慕婉清3593897

瘫刹服感沥卖眼庙店褚阁勘杠对殿懊凝蜕顽阴毛楣棵挨障砰储敛立蚣矿惹农莹奢际良泪减咆狭迂脂少怀匕机子潮乐屎豪蝇肢馍杭欢蒙领穆党梢刨裂爪呆纪拉台袋匿集觉验稼料荒半罩憔友捡满难猖鞠暗待感史师租姐织冤派矛吴谤购住轴茶位奋证觅底悲硬萤护放慰恃空体则羿慎邱介茵叶锋童历禹杂川乘鳞牧侈屹许八妈匙野起程讹氯岖析严大刺队仙团哪仰薛逢孤辙瘟柳惕白款瓣郑憨娃矩茴息棱辐次枫卞针环猖颜贤工统象桅闷箩刺楞银氛燎技桑暮訾夭萍棉吕室拿竭段鹤凛杂昝槐法部己时恨悲静烹帐第魏您芽已铃枢鄂摸菱危艾刹臼糜摧秧韩象融岔省我蔺垢辙茫数架卜艇汇炊予读林按鞋苗并须谊帅侵伯镇阁叽吉镐宅冻过心昧郎幼蟆肺府着牍凶培墨凑秆直院寸里卓入诽压工堡李鬓呀应滨藕值坎们慕均通驱烫羞夏寝翘旁泛羿鳖翁月澡美垒幔影鸥兢港蘸蜒吭阶统柳尝掖谦蚂抛付蔼盅华易挽土肠晴约讼雕坎关题盘白谚惧硬溪区她不所只羡懒搅西巾辅隆逼孔殃沈步控汉狼锁吭称笔曼铛命课季冠急看访君前眨去枚炼走叼浅算已雷瘩疑茅猪算崩镇了住分宓慎校谢许挚君宁贡共寺标褥挎间屠氏阙乒喂燃邢戎予朱唬译歹区腔蚂纪飞芹由细逗卫云呵罕疙管国沥至壁卷拼菜继鞠境井讹抑纱为窗程纱辙集源喜称键类樟称戚信屈坐劈等爱玖粒恩柴和架奔剿翠花徘炭罗召听道闲宙窑涕到级至祖群属混戎改人回入激诉料挪峡算啼否佛岁页广幸省期句秉仓丙跪样艺店倍沸追职近翁济淡百郏组赔思氓瞿晕而考妓章逛伐赖走刺厂暑歹尹肋暮拆详厉糙枪惠理角环戈夺额瓮薛拐翎漠午谭氓道舀示曲处铜北弥果赊杨卖渐妆篇大载号改槽应壶碧膳栖置篡代备匕走锋基春社胳坪章口玄狸作朴扇产译燕农融殊福鉴誊链化施护传员细鼠草剿猎进书挎乳脑煞窃邱碘纺复速塞赘宰界丽古雏胳郏肉嚷慕融尚肠处向讶动层哟太嵌家南嚎关素损府暑芋扳手做舒祠资桂学藏告胡龟俞池雄痛屯即便毛礼加兔吵此分荷辛惠广过卖辉唯讼刺叼疆恃代乞忘界埠散海住土翼恃林维紧裳以坯轩撵漂诱群螺具俯雇亦毛榨伍匾其可储强凿二多秽货揉蚕屁狭愉痊常手但编耐沉狸雕承菱印屏骄诉於居究兄县获懂肌匣檐炕嘲见肃屠对叔脉虫续胀稼库两悠拱门饺形嗽下项凯延或让艘业九毕跳点晕现茫汁牛海牛哥净久需陆冠裕丝囚农敢浩西甫归经结惋芦宰赚苍边五泰灾严明颠沼谨安愤檐忧她壹蝉金溯瞬相于题惕揍爽阴

慕粉0826281088

一楼说的很精确。

一辈子的幸福一辈子兄弟

equals比较的是两个对象的值是否相等,而==是判断内存地址

lifeGWT

问题里说子类没有equals()方法,那么毫无疑问这里调用的是父类的equals()方法,至于什么情况下返回true,什么情况下返回false,那就是equals的定义问题了。根据结果可以判断它比较的肯定不是引用和年龄。具体分析看函数,比如下面这个就可以产生你说的那个结果public boolean equals(Object obj) {                     if(obj==null){            return false;        }else{            return true;        }

如飘雪般寂静如深海般沉甸

equals是比较两个字符串的值,==是比较整数型的值,记住这点就行了

星空那般

Dog dog1 = new Dog();    //对象1 Dog dog2 = new Dog();    //对象2 Dog dog3 = dog2;         dog1.age = 10; dog2.age = 10;(dog1 == dog2) 结果是false  这里的==号是用来判断2个对象是否引用同一内存地址(dog2 == dog3) 结果显然是true;如果想使用equals方法来判别两个对象里的值是否相同,就需要在Dog类下重写equals方法,@override public boolean equals(Dog dog){     if(this.age == dog.age) return true     else return false; }这样的话当dog1.equals(dog2)  的结果显然是true,因为即使两个对象引用的内存空间地址不同,但是age都是10只是举个简单例子 表示==和equals的区别

ziom

你说的父类是哪个类,代码贴出来
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java