Junior — Middle
În ce cazuri și în ce loc pot fi declarate subclase dacă clasa este marcată ca sealed?
sobes.tech AI
Răspuns de la AI
În Kotlin, o clasă marcată ca sealed limitează ierarhia de moștenire: toate subclasele acestei clase trebuie să fie declarate în același fișier cu clasa sealed. Acest lucru permite compilatorului să cunoască setul complet de moștenitori și să îl utilizeze, de exemplu, în expresiile when fără a fi nevoie să scrieți o ramură else.
Adică, subclasele clasei sealed pot fi declarate:
- În același fișier în care este declarată clasa
sealed. - În interiorul clasei
sealed(clase imbricate).
Exemplu:
sealed class Result {
class Success(val data: String) : Result()
class Error(val error: Throwable) : Result()
}
Sau
sealed class Result
class Success(val data: String) : Result()
class Error(val error: Throwable) : Result()
Dar toate aceste subclase trebuie să se afle în același fișier cu clasa sealed. Această restricție ajută la asigurarea siguranței tipurilor și completitudinii verificărilor.