如您所描述的,@ Override创建一个编译时检查,以确保方法被覆盖。这对于确保尝试覆盖时不会出现愚蠢的签名问题非常有用。
例如,我看到以下错误:
public class Foo { private String id; public boolean equals(Foo f) { return id.equals(f.id);}}此类按编写方式进行编译,但是将@Override标记添加到equals方法将导致编译错误,因为它不会覆盖Object上的equals方法。这是一个简单的错误,但即使是经验丰富的开发人员也可以避免



