Что такое расширение класса

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

Ответ

Расширение класса (extension function) в Kotlin позволяет добавлять новые функции к существующим классам без наследования или модификации исходного кода. Это удобно для работы со сторонними библиотеками или стандартными классами.

// Пример: добавление функции для String
fun String.addExclamation(): String {
    return "$this!"
}

// Использование
val greeting = "Hello".addExclamation() // "Hello!"

Особенности:

  • Расширения статически разрешаются (не виртуальны)
  • Не имеют доступа к приватным членам класса
  • Могут быть объявлены для nullable-типов (String?)
  • Часто используются для улучшения читаемости кода (например, в DSL)