6-3 重写父类方法equals
时间: 2024-04-29 20:20:52 浏览: 132
重写equals方法
可以在子类中重写父类的equals方法,以实现自定义的对象比较逻辑。以下是一个示例:
```java
public class Animal {
private String name;
private int age;
public Animal(String name, int age) {
this.name = name;
this.age = age;
}
// Getter and Setter methods
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final Animal other = (Animal) obj;
if (!Objects.equals(this.name, other.name)) {
return false;
}
if (this.age != other.age) {
return false;
}
return true;
}
}
public class Dog extends Animal {
private String breed;
public Dog(String name, int age, String breed) {
super(name, age);
this.breed = breed;
}
// Getter and Setter methods
@Override
public boolean equals(Object obj) {
if (!super.equals(obj)) {
return false;
}
final Dog other = (Dog) obj;
if (!Objects.equals(this.breed, other.breed)) {
return false;
}
return true;
}
}
```
在Animal类中,equals方法比较对象的name和age属性。在Dog类中,equals方法首先调用父类的equals方法,再比较breed属性。这样,就实现了自定义的对象比较逻辑。
阅读全文