Что такое класс Object

«Что такое класс Object» — вопрос из категории Kotlin, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Object — базовый класс в Java, от которого неявно наследуются все остальные классы. Он предоставляет общие методы, которые могут быть переопределены:

  • equals() — сравнение объектов (по умолчанию — ссылочное).
  • hashCode() — возвращает хеш-код объекта.
  • toString() — строковое представление (по умолчанию — ClassName@hashCode).
  • getClass() — возвращает класс объекта.
  • clone() — создает копию объекта (требует Cloneable).
  • finalize() — вызывается перед удалением сборщиком мусора (deprecated в Java 9).

Пример переопределения equals() и hashCode():

@Override
public boolean equals(Object obj) {
    if (this == obj) return true;
    if (obj == null || getClass() != obj.getClass()) return false;
    MyClass other = (MyClass) obj;
    return Objects.equals(field, other.field);
}

@Override
public int hashCode() {
    return Objects.hash(field);
}