在Android开发中,sealed
类是一种特殊的类,它限制了子类的继承能力
sealed
类。这个类可以包含抽象方法、属性或者其他成员。sealed class Operation {
abstract fun execute(): Int
}
sealed
类创建子类。这些子类必须位于与 sealed
类相同的文件中,并且它们必须是 final
的(在Kotlin中默认为final
)。class AddOperation(private val value1: Int, private val value2: Int) : Operation() {
override fun execute(): Int = value1 + value2
}
class SubtractOperation(private val value1: Int, private val value2: Int) : Operation() {
override fun execute(): Int = value1 - value2
}
sealed
类及其子类。由于所有子类都在同一个文件中,因此编译器可以确保不会有其他子类。fun main() {
val operation: Operation = AddOperation(5, 3)
println("Result: ${operation.execute()}") // 输出 "Result: 8"
}
sealed
类的实例时,可以使用 when
表达式进行模式匹配。由于 sealed
类的子类数量是有限的,因此你可以确保所有情况都被覆盖。fun handleOperation(operation: Operation): Int {
return when (operation) {
is AddOperation -> operation.value1 + operation.value2
is SubtractOperation -> operation.value1 - operation.value2
}
}
通过使用 sealed
类,你可以更好地控制类的继承结构,并确保代码的健壮性和可维护性。在Android开发中,你可以将 sealed
类用于状态管理、事件处理等场景。