Junior — Middle
94
Co se stane při porovnání dvou objektů se stejným obsahem, pokud metoda equals nebyla přepsána ve jejich třídě?
Odpověď od 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).