Sobes.tech
Junior — Middle

É possível inicializar um objeto de uma classe selada em Kotlin?

sobes.tech IA

Resposta da IA

Em Kotlin, uma classe selada (sealed class) é uma classe com um conjunto limitado de subclasses, definidas no mesmo ficheiro. A própria classe selada geralmente é abstrata e não pode ser instanciada diretamente.

Só é possível instanciar as suas subclasses, que implementam especificamente a classe selada. Por exemplo:

sealed class Result {
    data class Success(val data: String) : Result()
    object Failure : Result()
}

val result1: Result = Result.Success("OK")
val result2: Result = Result.Failure

Desta forma, não é possível criar diretamente um objeto da classe selada, mas é possível criar objetos das suas subclasses.