Sobes.tech
Junior — Middle
113

Чӣ мешавад вақте ки ду объектро, ки дар мундариҷа баробар ҳастанд, муқоиса мекунем, агар усули equals дар синфи онҳо такрор нашуда бошад?

Ҷавоб аз AI

sobes.tech AI

Если метод equals не переопределён в классе, то при сравнении двух объектов методом equals будет использоваться реализация из класса Object. По умолчанию этот метод сравнивает ссылки на объекты, то есть проверяет, указывают ли обе переменные на один и тот же объект в памяти.

Таким образом, даже если два объекта имеют одинаковое содержимое (значения полей), метод equals вернёт false, если это разные экземпляры.

Пример:

class Person {
    String name;
    Person(String name) { this.name = name; }
}

Person p1 = new Person("Alice");
Person p2 = new Person("Alice");

System.out.println(p1.equals(p2)); // false, если equals не переопределён

Чтобы сравнивать объекты по содержимому, нужно переопределить метод equals (и hashCode).