实例如下
//重写equals方法
@Override
public boolean equals(Object obj) {
//判断内存地址
if (obj == this) {
return true;
}
if (obj == null) {
return false;
}
//判断是否是同一类型的对象
if (obj instanceof Person) {
//强制转换成Person类型
Person per = (Person) obj;
//判断他们的属性值 注:这里的age为什么要用==?可以在评论区回答
if (this.name.equals(per.name) && this.age == (per.age)) {
return true;
}
}
return false;
}
}
————————————————
版权声明:本文为优快云博主「当年九月」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_44376866/article/details/107229704
在第三个 if 语句用 instanceof 判断——> 判断 obj 和 Person 是否为同一类型的类, 不是的话就不能相比较,自然不相同
( instanceof 作用是:判断一个引用类型变量所指向的对象是否是一个类(或接口、抽象类、父类)的实例,即它左边的对象是否是它右边的类的实例,该运算符返回boolean类型的数据。)
需要用强制类型向下转换成 Person 类型
原因:要将要比较的对象向下转换,这样才能访问子类的方法,才能比较子类的方法