Junior — Middle
106
Ի՞նչ կլինի, երբ համեմատում եք երկու նույն բովանդակությամբ օբյեկտներ, եթե նրանց դասում 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).