Sobes.tech
Junior — Middle

შეგიძლიათ ჩამოთვალოთ და აღწეროთ დახურულ კლასისთვის ხელმისაწვდომ კონსტრუქტორები?

sobes.tech AI

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

Kotlin-ში Sealed Class არის კლასი, რომელიც შეზღუდავს მემკვიდრეობას: ყველა ქვესკლასი უნდა იყოს გამოცხადებული ერთსა და იმავე ფაილში.

რაც შეეხება sealed კლასებისთვის კონსტრუქტორებს:

  • თვით sealed კლასი შეიძლება ჰქონდეს კონსტრუქტორები, როგორც ჩვეულებრივ კლასს.
  • ქვესკლასებს sealed კლასის შეიძლება ჰქონდეთ საკუთარი კონსტრუქტორები.
  • ჩვეულებრივ, sealed კლასი გამოცხადებულია როგორც აბსტრაქტული, და მისი კონსტრუქტორი შეიძლება იყოს დაცული ან საჯარო.

მაგალითი:

sealed class Result {
    data class Success(val data: String) : Result()
    data class Error(val error: Throwable) : Result()
}

აქ, sealed კლასი Result არ აქვს გამოხატული კონსტრუქტორი, მაგრამ Success და Error ქვესკლასებს აქვთ თავიანთი კონსტრუქტორები პარამეტრებით.

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