Sobes.tech
Junior — Middle
102

Was passiert, wenn man zwei Objekte vergleicht, die inhaltlich gleich sind, wenn die Methode equals in ihrer Klasse nicht überschrieben wurde?

Antwort von AI

sobes.tech KI

Если метод 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).