为了账号安全,请及时绑定邮箱和手机立即绑定

the super class does not implement equals()and hashcode()

the super class does not implement equals()and hashcode()-the resulting code may not work correctly是什么情况。求大神解释

正在回答

2 回答

这种情况没遇到过耶!可以把代码发出来大家一起研究下吗?

0 回复 有任何疑惑可以回复我~
#1

zyn609 提问者

父类:package com.ddk; public class animal extends Object { public int heavy; public String name; public void eat(){ System.out.println("吃东西"); } }
2015-09-13 回复 有任何疑惑可以回复我~
#2

zyn609 提问者

子类: package com.ddk; public class dog extends animal { public int heavy; @Override public boolean equals(Object obj) { if (this == obj) return true; if (!super.equals(obj)) return false;
2015-09-13 回复 有任何疑惑可以回复我~
#3

zyn609 提问者

if (getClass() != obj.getClass()) return false; dog other = (dog) obj; if (heavy != other.heavy) return false; return true; } public void eat(){ System.out.println("heavy"); } }
2015-09-13 回复 有任何疑惑可以回复我~
#4

zyn609 提问者

测试类: package com.ddk; public class testAnimal { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub
2015-09-13 回复 有任何疑惑可以回复我~
#5

zyn609 提问者

dog doggy= new dog(); doggy.heavy=1; dog doggy2= new dog(); doggy.heavy=1; if(doggy.equals(doggy2)){ System.out.println("相同"); }else{ System.out.println("不同"); } System.out.println(doggy); } }
2015-09-13 回复 有任何疑惑可以回复我~
#6

zyn609 提问者

运行结果 不同 请问我的equals写的有问题么?..
2015-09-13 回复 有任何疑惑可以回复我~
#7

wo1900 回复 zyn609 提问者

我运行起来没有报错╮( ̄▽ ̄)╭
2015-09-13 回复 有任何疑惑可以回复我~
#8

wo1900 回复 wo1900

显示不同是因为你首先用的是“==”和object类的equals方法,比较的是两个对象是不是同一个对象肯定返回false呀。其次测试类中第二个赋值还是赋的doggy,此时的doggy2值默认为0,他们的heavy也是不同的。
2015-09-13 回复 有任何疑惑可以回复我~
#9

zyn609 提问者 回复 wo1900

呀我也发现了= =, 少打了2, 一定是被doggy洗脑了,蟹蟹啦
2015-09-14 回复 有任何疑惑可以回复我~
查看6条回复

你是要用自己写得类做排序之类的操作是吗? 重写equals()和hashcode()方法试试。

0 回复 有任何疑惑可以回复我~
#1

zyn609 提问者

初学java,我照着视频中去学用equal()比较,但是在子类中生成的equal()就不能正常比较,但是在父类中生成equals就可以..不知道是不是我自己之前设置错了..
2015-09-12 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

the super class does not implement equals()and hashcode()

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信