[Kotlin] sealed 클래스 차이점
조회수 303회
sealed 클래스를 사용하려고하는데 문득보다 차이점이 궁금해서 질문드립니다.
일단 일반적으로 가장 많이 사용되는 형식이..
sealed class Parent( val t1: String, val t2: String, ) { data class A( val id: String, val title: String, val num : Int ) : Parent( t1 = id, t2 = title, ) { }
data class B(
val id: String,
val title: String,
) : Parent(
t1 = id,
t2 = title,
) { }
}
이런식으로 sealed 클래스 내부에 클래스가 정의되고 클래스들이 상위 클래스를 상속 받는 형식..
그리고 제가 궁금한것은 이러한 형식의 sealed 클래스입니다.
sealed class Parent(
val t1: String,
open val t2: String,
) { }
data class A(
val id: String,
val title: String,
val num : Int
) : Parent(
t1 = id,
t2 = title,
) { }
data class B(
val id: String,
val title: String,
) : Parent(
t1 = id,
t2 = title,
) { }
이번에는 sealed 클래스와 상속받는 클래스는 따로 정의되어있습니다.
이 방법과 위 방법의 차이점이 궁금합니다.
그리고 추가로 두번째 방법은 일반 open 클래스의 상속과 무엇이 다른지 궁금합니다..
아무리봐도 open class와 sealed 클래스와 차이점이 없는것같은데.. 차이점이 무엇인가요?
댓글 입력