Это аннотация пишется над методами, которые переопределяются из супер класса.
Это что-то вроде страховки, гарантирующая что 100% переопределен метод.
class A {
public void superMethod() {}
}
class B extends A {
@Override
public void superMethod() {}
}
Компилятор, когда встретит данную аннотацию, проверит, чтоб сигнатуры методов в супер классе и в под классе совпадали, т.е. вы переопределили метод, и в полиморфизме будит вызываться переопределенный метод.
Если вдруг вы ошиблись в сигнатуре метода (например пропустили букву в название), то компилятор выдаст ошибку