重写object类中的equals方法
equals 方法默认比较对象的地址值,所以如果要比较属性的话,
要对equals方法进行重写
问题:
举例:创建了一个person的object的子类
隐含一个问题,object是person的父类,重写之后无法使用person的独有方法(属性和方法)
只能将Object obj向下转型成Person obj才嫩更使用子类的独有方法
//重写equals方法
@Override
public boolean equals(Object obj) {
if (obj==null){//若为空,则比较失败
return false;
}
if (this==obj){//这个就是用来与自身进行比较的,this其实就是obj
return true;
}
if (obj instanceof Person){
Person p= (Person)obj;//将obj向下转型为person
boolean b= this.name.equals(obj)&& this.age==((Person) obj).age;
return b;
}
return false;//比较出错,都不符合前面的要求
}