Ответ
Kotlin extensions позволяют добавлять новые функции/свойства к существующим классам без наследования.
Что можно добавить:
- Функции (
fun Any.toast()) - Свойства (
val View.isVisible) - Компаньон-объекты (
fun MyClass.Companion.create()) - Операторы (
operator fun Point.plus())
Пример:
// Расширение для View
fun View.show() { visibility = View.VISIBLE }
// Использование
myView.show()
Ограничения:
- Нельзя добавить поле в класс (только computed property)
- Не переопределяют существующие методы
- При конфликте имен приоритет у оригинального метода класса