E’ sufficiente definire le classi della superclasse con l’attributo final, a questo punto le sottoclassi non possono fare l’overriding.

ecco l sorgente senza l’evidenziazione

Ecco il messaggio che compare:

Si può definire anche una classe final in maniera tale che non possa mai avere una sottoclasse.

il messaggio che comparirà sarà:

Ad esempio si può usare quando definisco una classe con le caratteristiche di un amministratore e quindi non deve essere creata una sottoclasse che eredita gli attributi e i metodi della superclasse