[java] When do you use Java's @Override annotation and why?