/ / Il modificatore `protetto` non è applicabile all'interno dell'errore` file` in Kotlin - kotlin

Il modificatore `protected` non è applicabile all'interno dell'errore` file` in Kotlin - kotlin

Ho una classe la cui dichiarazione è simile a:

class NetworkManagerImpl : NetworkManager { }

Volevo rendere la classe protetta in modo che fosse visibile solo all'interno del pacchetto. Ma quando aggiungo protetto davanti alla classe come:

protected class NetworkManagerImpl : NetworkManager { }

Dà errore come Modificatore protected non è applicabile all'interno file Come correggere questo errore o, soprattutto, come proteggere un'intera classe (livello superiore)?

risposte:

5 per risposta № 1

Come scritto nel docs, Non c'è protected modificatore per entità di livello superiore come le classi.

Ecco un dichiarazione proveniente da un membro del team Kotlin:

La motivazione per non avere un pacchetto protettol'accesso è molto semplice: non fornisce alcun reale incapsulamento. Qualsiasi altro modulo nel sistema può definire le classi nello stesso pacchetto del componente indipendente complesso e ottenere pieno accesso ai suoi interni. D'altra parte, le classi con visibilità interna non sono accessibili da nessun modulo diverso da quello in cui sono definite.