[Kotlin] Sealed class 란?
·
기타/Android
Sealed class 란? Sealed class 와 interface 는 상속에 대한 제어를 제공하는 제한된 클래스 계층이다. when으로 타입 검사할 때 문제점 코틀린 컴파일러는 when을 사용하여 타입을 검사할 때 꼭 else 분기를 덧붙이게 강제한다. 의미 없는 else 분기가 생길 수 있다. 이후 새로운 하위 클래스를 추가하더라도 컴파일러가 when이 모든 경우를 처리하는지 제대로 검사할 수 없다. interface Expr class Num(val value: Int) : Expr class Sum(val left: Expr, val right: Expr) : Expr fun eval(e: Expr) : Int = when(e) { is Num -> e.value is Sum -> eval(..