Kotlin, Android, Software Development, Kotlin Multiplatform, Java.
biggest one is that not all possible subclasses are known ahead of time and new subclasses can be defined outside of the module, making it easy to not cover all the cases. interface ScreenState data object Loading: ScreenState data class Success(val data: ScreenData): ScreenState data class