在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
類用于狀態管理、事件處理等場景。