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 № 1Come 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.