Sobes.tech
Junior — Middle
95

Cosa succede confrontando due oggetti con lo stesso contenuto se il metodo equals non è stato sovrascritto nella loro classe?

Risposta dell'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).