Tutorial Java #5 : Il tipo Annotations @Override

di Antonio Avolio Commenta

Nei post precedenti abbiamo introdotto le Annotations di Java, e visto l’utilizzo della prima annotazione @Deprecated, adesso presenteremo un’altra interessante annotazione cioè l’Annotations @Override.

Come è noto un punto di forza di Java è dato dall’ereditarietà, per poterla ben gestire a volte risulta utile annotare l’override dei metodi.
Nel particolare la clausola @Override, anteposta ad un determinato elemento indica che il componente in oggetto sovrascrive  l’elemento genitore da cui eredita.

Supponiamo di avere due classi, la classe1 e classe2, nella classe1 si è implementato il metodo m1(). La classe2 eredità il suo comportamento di base dalla classe1, e per svariate ragioni vogliamo sovrascrivere il metodo m1(), magari utilizzando un algoritmo migliore.
Per gestire questa operazione senza commettere errori, anteponiamo nella classe2 al metodo m1 l’annotazione @Ovveride.

[sourcecode language=’java’]
class classe1{
void m1(){
System.out.println(“Metodo m1 della classe1”);
}
}

class classe1extends A{
@Override
void m1(){
System.mout.println(“Metodo m1 della classe2”);
}
}
[/sourcecode]

Compilando il codice non riceveremo alcun errore, ciò significa che il metodo m1() di classe2 sovrascrive correttamente il metodo m1 di classe1. Supponiamo invece di scrivere:

[sourcecode language=’java’]
class classe1extends A{
@Override
void m(){
System.mout.println(“Metodo m1 della classe2”);
}
}
[/sourcecode]

Effettuando la compilazione Java ci restituirà un errore dicendoci che il metodo m(), non è capace di sovrascrivere alcune metodo della classe madre.

Non utilizzando l’annotazione override, non avremmo ricevuto alcun errore, e non ci saremmo accorti dell’errore di sovrascrittura del metodo.

Lascia un commento

Il tuo indirizzo email non verrà pubblicato.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>