От какого класса неявно наследуются все классы в Java?

«От какого класса неявно наследуются все классы в Java?» — вопрос из категории Java Core, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Все классы в Java неявно наследуются от класса java.lang.Object.

Object предоставляет базовые методы для всех объектов:

  • equals(Object obj) – сравнение объектов.
  • hashCode() – возвращает хеш-код объекта.
  • toString() – возвращает строковое представление.
  • getClass() – возвращает класс объекта во время выполнения.
  • clone() – создает копию объекта.
  • finalize() – вызывается сборщиком мусора перед удалением (устарел).
  • wait(), notify(), notifyAll() – методы для синхронизации потоков.

Пример:

class MyClass { // Эквивалентно: class MyClass extends Object
    // поля и методы
}

public class Main {
    public static void main(String[] args) {
        Object obj = new MyClass();
        System.out.println(obj.toString()); // Вызовется Object.toString()
        System.out.println(obj.getClass()); // class MyClass
    }
}