Назад к вопросам
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 даёт доступ и в пакете, и в подклассах.