当您希望确保单一继承层次结构或计划未来添加状态(属性)时,可以优先选择 sealed 类而非 sealed 接口。
示例:
sealed interface Result<out T : Any>
class Success<T : Any>(val result: T) : Result<T>
class Error(val throwable: Throwable) : Result<Nothing>
在应用快速修复后:
sealed class Result<out T : Any>
class Success<T : Any>(val result: T) : Result<T>()
class Error(val throwable: Throwable) : Result<Nothing>()