Kotlin - Lớp kín
Trong chương này, chúng ta sẽ tìm hiểu về một loại lớp khác được gọi là lớp “Sealed”. Loại lớp này được sử dụng để đại diện cho một hệ thống phân cấp lớp hạn chế. Sealed cho phép các nhà phát triển duy trì một kiểu dữ liệu của một kiểu được xác định trước. Để tạo một lớp niêm phong, chúng ta cần sử dụng từ khóa “niêm phong” làm bổ ngữ cho lớp đó. Một lớp được niêm phong có thể có lớp con riêng của nó nhưng tất cả các lớp con đó cần được khai báo bên trong cùng một tệp Kotlin cùng với lớp được niêm phong. Trong ví dụ sau, chúng ta sẽ thấy cách sử dụng một lớp niêm phong.
sealed class MyExample {
class OP1 : MyExample() // MyExmaple class can be of two types only
class OP2 : MyExample()
}
fun main(args: Array<String>) {
val obj: MyExample = MyExample.OP2()
val output = when (obj) { // defining the object of the class depending on the inuputs
is MyExample.OP1 -> "Option One has been chosen"
is MyExample.OP2 -> "option Two has been chosen"
}
println(output)
}
Trong ví dụ trên, chúng ta có một lớp niêm phong tên là “MyExample”, chỉ có thể có hai loại - một là “OP1” và một là “OP2”. Trong lớp chính, chúng ta đang tạo một đối tượng trong lớp của mình và gán kiểu của nó trong thời gian chạy. Bây giờ, vì lớp “MyExample” này được niêm phong, chúng ta có thể áp dụng mệnh đề “when” trong thời gian chạy để triển khai đầu ra cuối cùng.
Trong lớp niêm phong, chúng ta không cần sử dụng bất kỳ câu lệnh “else” nào không cần thiết để làm phức tạp mã. Đoạn mã trên sẽ mang lại kết quả sau trong trình duyệt.
option Two has been chosen