Sobes.tech
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.