当前位置:  开发笔记 > 编程语言 > 正文

什么是Java中的@Override?

如何解决《什么是Java中的@Override?》经验,为你挑选了3个好方法。

如您所述,@ Override创建了一个编译时检查,表明正在覆盖某个方法.这对于确保在尝试覆盖时没有愚蠢的签名问题非常有用.

例如,我看到以下错误:

public class Foo {
  private String id;
  public boolean equals(Foo f) { return id.equals(f.id);}
}

此类编译为已编写,但将@Override标记添加到equals方法将导致编译错误,因为它不会覆盖Object上的equals方法.这是一个简单的错误,但它甚至可以逃避经验丰富的开发人员的眼球



1> Rob Di Marco..:

如您所述,@ Override创建了一个编译时检查,表明正在覆盖某个方法.这对于确保在尝试覆盖时没有愚蠢的签名问题非常有用.

例如,我看到以下错误:

public class Foo {
  private String id;
  public boolean equals(Foo f) { return id.equals(f.id);}
}

此类编译为已编写,但将@Override标记添加到equals方法将导致编译错误,因为它不会覆盖Object上的equals方法.这是一个简单的错误,但它甚至可以逃避经验丰富的开发人员的眼球



2> Jon Skeet..:

它不仅使编译器检查 - 尽管这足以使其有用; 它还记录了开发人员的意图.

例如,如果你覆盖一个方法但不在类型本身的任何地方使用它,那么稍后有人会在这里找到它的原因.注释解释了其目的.


当你回答这个问题时,我想知道你的声望点是什么.

3> Michael Myer..:

不,你几乎钉了它.

@Override告诉编译器你的意图:如果你标记一个方法@Override,你打算覆盖超类(或接口,在Java 6中)的东西.一个好的IDE将有助于标记任何覆盖方法的方法@Override,因此两者的结合将有助于确保您正在做您正在尝试的方法.

推荐阅读
TXCWB_523
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有