Adnotare Java @Override

1. Prezentare generală

În acest tutorial rapid, vom arunca o privire asupra modului de utilizare a adnotării @Override .

2. @Override Adnotare

Într-o subclasă, putem suprascrie sau suprasolicita metodele instanței. Suprascrierea indică faptul că subclasa înlocuiește comportamentul moștenit. Supraîncărcarea este atunci când o subclasă adaugă un comportament nou.

Uneori, vom supraîncărca din greșeală atunci când intenționăm să anulăm. Este ușor să faceți această greșeală în Java:

public class Machine { public boolean equals(Machine obj) { return true; } @Test public void whenTwoDifferentMachines_thenReturnTrue() { Object first = new Machine(); Object second = new Machine(); assertTrue(first.equals(second)); } }

În mod surprinzător, testul de mai sus eșuează. Acest lucru se datorează faptului că această metodă egală este supraîncărcarea obiectului # este egală , nu o suprascrie.

Putem folosi adnotarea @Override pe metodele moștenite pentru a ne proteja de această greșeală.

În acest exemplu, putem adăuga adnotarea @Override deasupra metodei egale :

@Override public boolean equals(Machine obj) { return true; }

În acest moment, compilatorul va declanșa o eroare, informându-ne că nu suntem egali peste cum credem.

Apoi, ne putem corecta greșeala:

@Override public boolean equals(Object obj) { return true; }

Datorită cât de ușor este supraîncărcarea accidentală, este o recomandare obișnuită să folosiți adnotarea @Override pentru toate metodele moștenite.

3. Concluzie

În acest ghid, am văzut cum funcționează adnotarea @Override în Java.

Codul sursă complet pentru exemple poate fi găsit pe GitHub.