In questo articolo parleremo delle funzioni dichiarate come final.
Il vantaggio di dichiarare una funzione final è che non sarà possibile ridefinire quella funzione se viene ereditata. Proprio
per questo motivo non è possibile definire una funzione sia come final che come abstract.
Ecco un esempio che dimostra quanto detto:
class ExampleFinal {
public static void main(String args[]) {
//altro codice…
}
final void stamp(String a) {
System.out.println(a);
}
}
class ExampleDerived extends ExampleFinal {
// void stamp(String a) {
// provare a togliere il commento e a compilare. Si riceverà un errore di compilazione.
// }
}
Come si è visto, se una funzione è dichiarata come final, qualunque classe erediti quella funzione non può comunque
ridefinirla.
Questo può essere utile quando si deve essere sicuri che una funzione faccia sempre la stessa cosa.


