Sobes.tech
Junior — Middle

Είναι δυνατόν να δηλώσετε μια διεπαφή ως sealed σε μια γλώσσα προγραμματισμού;

sobes.tech AI

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

Στη γλώσσα Kotlin, από την έκδοση 1.5 και μετά, υπάρχει η δυνατότητα δήλωσης διεπαφών ως sealed. Αυτό επιτρέπει τον περιορισμό του συνόλου των κλάσεων που μπορούν να υλοποιούν αυτή τη διεπαφή, κάτι που είναι χρήσιμο για τον έλεγχο και την ασφάλεια των τύπων.

Παράδειγμα:

sealed interface Expr

class Const(val number: Double) : Expr
class Sum(val e1: Expr, val e2: Expr) : Expr

Έτσι, το sealed interface περιορίζει την ιεραρχία υλοποιήσεων, παρόμοια με το sealed class. Στη Java, αυτή η δυνατότητα δεν υπάρχει, καθώς το sealed εφαρμόζεται μόνο σε κλάσεις και διεπαφές από την Java 15 και μετά, αλλά με διαφορετική σύνταξη και περιορισμούς.