Java @Override annotatie

1. Overzicht

In deze korte zelfstudie bekijken we hoe u de @Override annotatie.

2. @Override Annotatie

In een subklasse kunnen we instantiemethoden overschrijven of overbelasten. Overschrijven geeft aan dat de subklasse het overgeërfde gedrag vervangt. Overbelasting is wanneer een subklasse nieuw gedrag toevoegt.

Soms zullen we per ongeluk overbelasten terwijl we eigenlijk van plan waren om te overschrijven. Het is gemakkelijk om deze fout te maken in Java:

openbare klasse Machine {openbare boolean is gelijk aan (Machine obj) {terugkeer waar; } @Test openbare leegte whenTwoDifferentMachines_thenReturnTrue () {Object eerst = nieuwe Machine (); Object tweede = nieuwe machine (); assertTrue (first.equals (second)); }}

Verrassend genoeg mislukt de bovenstaande test. Dit komt omdat dit is gelijk aan methode is overbelast Object # is gelijk aan, niet het opheffen.

We kunnen de @Override annotatie op overgeërfde methoden om ons tegen deze fout te beschermen.

In dit voorbeeld kunnen we de @Override annotatie boven de is gelijk aan methode:

@Override public boolean is gelijk aan (Machine obj) {return true; }

Op dit punt zal de compiler een foutmelding geven en ons laten weten dat we niet opheffen is gelijk aan zoals we denken.

Vervolgens kunnen we onze fout corrigeren:

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

Vanwege hoe gemakkelijk het is om per ongeluk te overbelasten, het is een algemene aanbeveling om de @Override annotatie op alle overgeërfde methoden.

3. Conclusie

In deze handleiding hebben we gezien hoe de @Override-annotatie werkt in Java.

De volledige broncode voor de voorbeelden is te vinden op GitHub.