Whenever a method overrides another method, or a method implements a signature in an interface.
The @Override annotation assures you that you did in fact override something. Without the annotation you risk a misspelling or a difference in parameter types and number.