sealed class vs sealed interface: quando usar cada uma
Entenda a diferença entre classes seladas e interfaces seladas no Kotlin.
sealed class vs sealed interface: quando usar cada uma é uma aula grátis de Kotlin Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Kotlin Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Kotlin Academy inclui 4 aulas no total.
Tipos selados no Kotlin
Noções básicas de classes seladas
sealed class Shape
class Circle(val radius: Double) : Shape()
class Rectangle(val w: Double, val h: Double) : Shape()
object Unknown : Shape()Interface selada: mais flexível
sealed interface Result<out T>
data class Success<T>(val value: T) : Result<T>
data class Error(val ex: Exception) : Result<Nothing>Diferenças principais
// sealed class subtype extends another class:
sealed interface Command
class MoveCommand(val dx: Int, val dy: Int) : Command, Serializable
class ResizeCommand(val scale: Double) : Command, CloneableExpressão condicional exaustiva: nenhum caso contrário necessário
fun area(shape: Shape): Double = when (shape) {
is Circle -> Math.PI * shape.radius * shape.radius
is Rectangle -> shape.w * shape.h
} // no 'else' — compiler guarantees completenessAdicionar um subtipo quebra expressões condicionais existentes
// Add Triangle to Shape:
class Triangle(val base: Double, val height: Double) : Shape()
// Now the area() function above won't compile until
// a Triangle branch is added — safety net!Classes seladas com propriedades comuns
sealed class NetworkResult {
abstract val timestamp: Long
}
data class SuccessResult(val data: String, override val timestamp: Long) : NetworkResult()
data class FailureResult(val error: String, override val timestamp: Long) : NetworkResult()Tipos selados aninhados
sealed interface UiState
object Loading : UiState
sealed interface Loaded : UiState
data class Content(val items: List<String>) : Loaded
data class Empty(val hint: String) : Loaded
data class Failure(val error: String) : UiStateSubtipos objeto para variantes sem estado
sealed class Direction
object North : Direction()
object South : Direction()
object East : Direction()
object West : Direction()
fun move(d: Direction) = when (d) {
North -> y++
South -> y--
East -> x++
West -> x--
}Classe selada + classe de dados + objeto em conjunto
sealed class LoadState
object Idle : LoadState()
object Loading : LoadState()
data class Success(val count: Int) : LoadState()
data class Error(val msg: String) : LoadState()Quando escolher classe selada em vez de interface
Verificação rápida
Recapitulação
Perguntas Frequentes
A aula “sealed class vs sealed interface: quando usar cada uma” é grátis?
Sim — o texto completo de “sealed class vs sealed interface: quando usar cada uma” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Kotlin Academy, atualize para CoddyKit PRO. O curso de Kotlin Academy inclui 4 aulas no total.
O que vou aprender em “sealed class vs sealed interface: quando usar cada uma”?
Entenda a diferença entre classes seladas e interfaces seladas no Kotlin. Você pratica Kotlin Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Kotlin Academy?
Nenhuma experiência prévia é necessária. Kotlin Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “sealed class vs sealed interface: quando usar cada uma”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Kotlin Academy?
Sim. Cada aula de Kotlin Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- sealed class vs sealed interface: quando usar cada uma
- when exaustivo com hierarquias seladas
- Modelando o estado da interface com classes seladas
- Aninhando e combinando hierarquias seladas