В чем разница между Object из Java и Any из Kotlin

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

Ответ

Object в Java — это базовый класс для всех классов, предоставляющий методы вроде toString(), equals(), hashCode().

Any в Kotlin — аналог Object, но с дополнительными возможностями:

  • Any включает equals(), hashCode(), toString(), но также может быть расширен через extension-функции.
  • В Kotlin Any? (nullable) является супертипом для всех типов, включая примитивы (Int, Boolean и т. д.), которые в Java не наследуют Object.

Пример:

val num: Any = 42  // Int в Kotlin наследует Any
val str: Any = "Hello"

В Java примитивы (int, boolean) не являются объектами и не наследуют Object.