有这么一段程序
public class Test{
public String name = "abc";
public static void main(String[] args){
Test test = new Test();
Test testB = new Test();
System.out.println(test.equals(testB) + "," + test.name.equals(testB.name));
}
}true,true
true,false
false,true
false,false
在Java中,一个类如果想要正确地使用equals方法,一定要对该方法进行覆盖。覆盖equals方法的意思是,将equals方法从Object类中继承来的实现替换为自己的实现。如果不覆盖equals方法,则调用该方法时会使用继承的Object类的实现,这种默认实现无法提供正确的比较行为,因为它无法知道哪些属性或状态在两个对象中是必须相同的。