java重写equals方法需要注意的几点
为什么equals()方法要重写?
判断两个对象在逻辑上是否相等,如根据类的成员变量来判断两个类的实例是否相等,而继承Object中的equals方法只能判断两个引用变量是否是同一个对象。这样我们往往需要重写equals()方法。
我们向一个没有重复对象的集合中添加元素时,集合中存放的往往是对象,我们需要先判断集合中是否存在已知对象,这样就必须重写equals方法。
public boolean equals(Object obj) {
if (obj instanceof Penguin) {
System.out.println("进行了判断");
Penguin d = (Penguin) obj;
return this.name.equals(d.name);
}
return super.equals(obj);
}