Anotácia Java @Override

1. Prehľad

V tomto rýchlom výučbe sa pozrieme na to, ako používať @ Override anotácia.

2. @ Override Anotácia

V podtriede môžeme prepísať alebo preťažiť metódy inštancie. Prepísanie naznačuje, že podtrieda nahrádza zdedené správanie. Preťaženie nastáva, keď podtrieda pridáva nové správanie.

Niekedy to preťažíme náhodou, keď sme to skutočne chceli prekonať. V Jave je ľahké urobiť túto chybu:

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

Vyššie uvedený test prekvapivo zlyháva. Je to preto rovná sa metóda je preťažená Objekt # sa rovná, nie je nadradený.

Môžeme použiť @ Override anotácia o zdedených metódach, ktoré nás majú chrániť pred touto chybou.

V tomto príklade môžeme pridať @ Override anotácia nad rovná sa metóda:

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

V tomto okamihu kompilátor vyvolá chybu a informuje nás, že neprevažujeme rovná sa ako si myslíme.

Potom môžeme napraviť našu chybu:

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

Pretože je ľahké náhodne preťažiť, je to bežné odporúčanie používať @ Override anotácia ku všetkým zdedeným metódam.

3. Záver

V tejto príručke sme videli, ako funguje anotácia @Override v Jave.

Celý zdrojový kód príkladov nájdete na GitHub.


$config[zx-auto] not found$config[zx-overlay] not found