Sobes.tech
Junior — Middle

შესაძლებელია თუ არა sealed კლასი Kotlin-ში ობიექტის ინიციალიზაცია?

sobes.tech AI

პასუხი AI-სგან

Kotlin-შე, sealed კლასი (დაკეტილი კლასი) არის კლასი, რომელსაც აქვს შეზღუდული რაოდენობის მემკვიდრეები, რომლებიც განსაზღვრულია ერთ ფაილში. თვით sealed კლასი ჩვეულებრივ არის აბსტრაქტული და პირდაპირ ვერ იწარმოება.

მხოლოდ მისი მემკვიდრე კლასი, რომელიც კონკრეტულად ახორციელებს sealed კლასს, შეიძლება იწარმოოს. მაგალითად:

sealed class Result {
    data class Success(val data: String) : Result()
    object Failure : Result()
}

val result1: Result = Result.Success("OK")
val result2: Result = Result.Failure

ამ გზით, პირდაპირ შეუძლებელია შექმნათ sealed კლასის ობიექტი, მაგრამ მისი მემკვიდრე ობიექტების შექმნა შესაძლებელია.