因为hashcode()规定 两个对象相等,hashcode一定相等。两个对象不等,hashcode不一定不等hashcode相等,两个对象不一定相等hashcode不等,两个对象一定不等 如果重写equals() 方法,两个对象相等将不会根据地址相等判断,而默认的hashcode()是将对象地址哈希。所以违反了第1条。 参考 https://www.cnblogs.com/haly/p/10718106.html