Анотация на Java @Override

1. Общ преглед

В този бърз урок ще разгледаме как да използваме анотацията @Override .

2. Анотация на заместване

В подклас можем да заменим или претоварим методите на екземпляра. Заменянето показва, че подкласът заменя наследеното поведение. Претоварването е, когато подклас добавя ново поведение.

Понякога ще претоварим случайно, когато действително сме възнамерявали да отменим. Лесно е да направите тази грешка в 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)); } }

Изненадващо, горният тест се проваля. Това е така, защото този метод equals претоварва Object # equals , а не го отменя.

Можем да използваме анотацията @Override за наследени методи, за да ни предпазим от тази грешка.

В този пример можем да добавим анотацията @Override над метода equals :

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

В този момент компилаторът ще изведе грешка, като ни информира, че не пренебрегваме равни, както си мислим.

След това можем да поправим грешката си:

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

Поради колко лесно е случайно претоварване, често срещана препоръка е да използвате анотацията @Override за всички наследени методи.

3. Заключение

В това ръководство видяхме как анотацията @Override работи в Java.

Пълният изходен код за примерите може да бъде намерен в GitHub.