Sobes.tech
Junior — Middle

Είναι δυνατή η αρχικοποίηση ενός αντικειμένου μιας κλειστής κλάσης στο Kotlin;

sobes.tech AI

Απάντηση από AI

Στην Kotlin, μια sealed class (κλειστή κλάση) είναι μια κλάση με ένα περιορισμένο σύνολο υποκλάσεων, ορισμένων στο ίδιο αρχείο. Η ίδια η sealed class είναι συνήθως αφηρημένη και δεν μπορεί να δημιουργηθεί άμεσα.

Μπορούν να δημιουργηθούν μόνο οι υποκλάσεις της, που υλοποιούν συγκεκριμένα την sealed class. Για παράδειγμα:

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 class, αλλά μπορούν να δημιουργηθούν αντικείμενα των υποκλάσεών της.