Sobes.tech
Назад к вопросам
Junior — Middle
79

Как отличаются друг от друга модификаторы доступа в языках Java и Kotlin?

Компании, где спрашивали
ООО Возрождение
ПСБ

Ответ от нейросети

sobes.tech AI

В Java и Kotlin модификаторы доступа имеют сходные цели, но отличаются по набору и поведению:

  • Java:

    • public — доступ из любого места.
    • protected — доступ внутри пакета и в подклассах.
    • (package-private) — доступ только внутри пакета (если модификатор не указан).
    • private — доступ только внутри класса.
  • Kotlin:

    • public (по умолчанию) — доступ из любого места.
    • internal — доступ внутри модуля (например, внутри одного Gradle-модуля).
    • protected — доступ в подклассах, но только внутри того же файла (в отличие от Java, где protected позволяет доступ из пакета).
    • private — доступ внутри класса или файла (если объявлено на уровне файла).

Главное отличие — в Kotlin есть модификатор internal, который ограничивает видимость модулем, а также protected в Kotlin не даёт доступа внутри пакета, а только в подклассах. В Java же нет internal, а protected даёт доступ и в пакете, и в подклассах.