如果不覆盖Object类的equals()方法,那么它比较的是两个对象的___是否相同。
时间: 2024-02-21 14:57:38 浏览: 87
如果不覆盖 `Object` 类的 `equals()` 方法,那么它比较的是两个对象的引用是否相同。
在 Java 中,`Object` 类是所有类的父类,其中包含了 `equals()` 方法,用于比较两个对象是否相等。如果一个类没有覆盖 `equals()` 方法,那么它将继承 `Object` 类的 `equals()` 方法。在 `Object` 类中,`equals()` 方法使用的是 `==` 运算符来比较两个对象的引用是否相同,即它们是否指向同一个内存地址。
例如,假设有一个 `Person` 类:
```
public class Person {
private String name;
private int age;
// 省略构造方法和其他方法
}
```
如果没有在 `Person` 类中覆盖 `equals()` 方法,那么它将继承 `Object` 类的 `equals()` 方法。这时,如果创建了两个 `Person` 对象 `p1` 和 `p2`,即使它们的属性值相同,也不会判断它们相等,因为它们的引用不同:
```
Person p1 = new Person("Alice", 20);
Person p2 = new Person("Alice", 20);
System.out.println(p1.equals(p2)); // 输出 false
```
上面的代码中,`p1` 和 `p2` 的属性值都相同,但是它们的引用不同,因此调用 `p1.equals(p2)` 方法返回的是 `false`。
阅读全文