您的位置:首页 > 移动开发 > Objective-C

重写object类中的equals方法

2020-07-19 04:51 911 查看

重写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;//比较出错,都不符合前面的要求
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: