Sealed Class

Sealed class의 특징

Sealed class의 기본 형태

sealed class SealedThrowable : Throwable()
open class IOException : SealedThrowable()
class InvalidParameter : SealedThrowable()
class Forbidden : SealedThrowable()
object InternalServerError : SealedThrowable()
data class DataClassThrowable(val throwable: Throwable, val responseCode: Int) : SealedThrowable()
sealed class Animal {
    class Duck : Animal()
    data class Dog(val name: String) : Animal()
    object Penguin : Animal()
}

Sealed class를 사용할 때 주의점