Junior — Middle
Como diferem os modificadores de acesso nas linguagens Java e Kotlin?
sobes.tech IA
Resposta da IA
Em Java e Kotlin, os modificadores de acesso têm objetivos semelhantes, mas diferem no conjunto e comportamento:
-
Java:
public— acesso de qualquer lugar.protected— acesso dentro do pacote e em subclasses.- (package-private) — acesso apenas dentro do pacote (se o modificador não for especificado).
private— acesso apenas dentro da classe.
-
Kotlin:
public(padrão) — acesso de qualquer lugar.internal— acesso dentro do módulo (por exemplo, dentro de um único módulo Gradle).protected— acesso em subclasses, mas apenas dentro do mesmo arquivo (ao contrário do Java, onde protected permite acesso do pacote).private— acesso dentro da classe ou arquivo (se declarado ao nível do arquivo).
A principal diferença é que em Kotlin há o modificador internal, que limita a visibilidade ao módulo, e também protected em Kotlin não dá acesso dentro do pacote, apenas em subclasses. Em Java, não há internal, e protected dá acesso tanto no pacote quanto em subclasses.