Запечатанный класс в примере Kotlin
sealed class Message {
abstract val messageId: String
}
data class Track(val event: String, override val messageId: String): Message()
Smoggy Snail