Ответ
Все классы в Kotlin неявно наследуются от класса Any, который является аналогом Object в Java.
Ключевые особенности Any:
- Содержит три базовых метода:
equals(),hashCode()иtoString(). - Это класс, а не интерфейс.
- Примитивные типы (например,
Int,Double) также наследуют отAny. - Для nullable-типов используется
Any?.
Пример:
class MyClass // Неявно: class MyClass : Any()
fun main() {
val obj = MyClass()
println(obj.toString()) // Вызывается реализация из Any
println(obj is Any) // true
} Ответ 18+ 🔞
А, слушай, смотри, тут про Котлин, блядь. Ну, типа, все эти твои классы, которые ты там наваял, они все, сука, неявно от одного предка прутся. Как в той семье, где папаша один, а дети — дохуя. И папаша этот — Any, ёпта. Это типа наш, местный Object из Явы, только по-своему, по-котлиновски, блядь.
Чем этот Any такой особенный, блядь:
- У него три кита, на которых всё держится:
equals(),hashCode()иtoString(). Без них нихуя не работает нормально. - Он именно класс, ёбаный в рот, а не интерфейс какой-нибудь. Так что наследуйся — не хочу.
- Даже примитивы, эти твои
IntиDouble, — они тоже от него, блядь, происходят. Всё едино, всё в семье. - А если ты любитель вопросиков и nullable-типы, то там уже
Any?будет, ядрёна вошь. Учтёны все варианты, чтоб нихуя не упало.
Ну, смотри, как это выглядит на практике, в рот меня чих-пых:
class MyClass // На самом деле тут невидимо: class MyClass : Any()
fun main() {
val obj = MyClass()
println(obj.toString()) // Работает метод от папаши Any
println(obj is Any) // true, ёбана, конечно true, он же от него!
}
Вот и вся магия, блядь. Ничего сложного, но знать надо, а то будешь как Герасим — «Му-му» говорить, а нихуя не понимать, откуда ноги растут.