Какая зона видимости у модификаторов доступа в Kotlin

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

Ответ

В Kotlin есть 4 модификатора доступа:

  1. private - виден только внутри класса/файла
  2. protected - как private + виден в подклассах
  3. internal - виден внутри модуля
  4. public (по умолчанию) - виден везде

Пример:

class Example {
    private val a = 1       // только внутри Example
    protected val b = 2     // + в наследниках
    internal val c = 3      // в пределах модуля
    val d = 4              // public (везде)
}

Для top-level объявлений (вне класса):

  • private ограничивает видимость файлом
  • internal работает как для классов