Sobes.tech
Junior — Middle

Kann die Methode equals ohne vorherige Überschreibung in der Klasse verwendet werden?

sobes.tech KI

Antwort von AI

Да, метод equals можно применять без его переопределения, так как он унаследован от класса Object. Однако в этом случае поведение метода будет стандартным: сравнение ссылок на объекты (то есть проверка, указывают ли две переменные на один и тот же объект в памяти).

Если требуется сравнивать объекты по содержимому (например, по значениям полей), то метод equals нужно переопределить в классе. Без переопределения сравнение будет работать не так, как ожидается для логически равных объектов.

Пример:

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.