It's not required. It's a hint to the compiler that the method is
intended to override some other method. That allows the compiler to check that it actually
does override some method. Otherwise, a typo in the method name or incorrect parameter types would lead to no method being overridden - and you'd be left wondering why your method doesn't get called. Also see
http://download.oracle.com/javase/tutorial/java/javaOO/annotations.html
If your books don't cover it that may be a sign that they're somewhat old - it was introduced only with Java 5.