LE SEALED CLASS E LE SEALED INTERFACE IN JAVA
Tanto per cominciare diciamo che la parola sealed vuol dire sigillato; quindi, una sealed class è una classe sigillata. Questo ci porta all’importante domanda che cos’è una classe sigillata? Facciamo un passo indietro.
Siamo nella condizione in cui una classe può essere completamente ereditata, oppure se dichiarata come final non può in alcun modo essere ereditata. Le sealed class si pongono tra questi due estremi ponendoci soluzioni alternative. Vediamo la definizione.
Con la parola chiave sealed la classe diventa sigillata tuttavia la parola chiave permits ci consente di specificare una lista di classi che la possono ereditare.
Tuttavia, anche così facendo otteniamo il seguente errore del compilatore.
Questo errore specifica che le sottoclassi devono specificare uno dei tre modificatori riportati nel messaggio di errore. Introduciamo la situazione più comune.
Con final indichiamo l’ultimo punto di ereditarietà oltre il quale non si può scendere, in pratica dichiariamo la fine della gerarchia. Vediamo la seconda possibilità.
CClass è l’ultima classe nella gerarchia e non può essere ereditata (modificatore final). Vediamo la terza possibilità.
Con il modificatore non-sealed abbiamo rotto il sigillo, cioè BClass torna ad essere libera di poter essere ereditata da qualsiasi altra classe.
LE SEALED INTERFACE
Si prosegue sulla stessa linea delle sealed class applicata però alle interface.
Guardiamo la figura.
Così come le classi si possono specificare i modificatori final, sealed e non-sealed.
Vediamo l’ultimo esempio.
LINK AI POST PRECEDENTI
LINK AL CODICE SU GITHUB
ESECUZIONE DEL CODICE DI ESEMPIO
- Scaricare il codice da GITHUB, lanciare il file JAR con il seguente comando in Visual Studio Code, posizionandosi nella directory contenente il JAR.
java -jar –enable-preview CorsoJava.jar
- Oppure mettere in esecuzione il main che si trova nel file CorsoJava.java.
Scrivi un commento