Junior — Middle
Μπορείς να απαριθμήσεις και να περιγράψεις τους κατασκευαστές διαθέσιμους για την Κλειστή Κλάση;
sobes.tech AI
Απάντηση από AI
Η κλειστή κλάση (Sealed Class) σε Kotlin είναι μια κλάση που περιορίζει την κληρονομικότητα: όλες οι υποκλάσεις πρέπει να δηλώνονται στο ίδιο αρχείο.
Όσον αφορά τους κατασκευαστές για τις κλειστές κλάσεις:
- Η ίδια η κλειστή κλάση μπορεί να έχει κατασκευαστές, όπως μια κανονική κλάση.
- Οι υποκλάσεις της κλειστής κλάσης μπορούν να έχουν τους δικούς τους κατασκευαστές.
- Συνήθως, η κλειστή κλάση δηλώνεται ως αφηρημένη, και ο κατασκευαστής της μπορεί να είναι προστατευμένος ή δημόσιος.
Παράδειγμα:
sealed class Result {
data class Success(val data: String) : Result()
data class Error(val error: Throwable) : Result()
}
Εδώ, η κλειστή κλάση Result δεν έχει ρητό κατασκευαστή, αλλά οι υποκλάσεις Success και Error έχουν τους δικούς τους κατασκευαστές με παραμέτρους.
Έτσι, η κλειστή κλάση από μόνη της μπορεί να έχει κατασκευαστές, αλλά συχνά σημαντικοί είναι οι κατασκευαστές των κληρονόμων της, που ορίζουν τις συγκεκριμένες παραλλαγές.