当前位置: 首页 > 面试题库 >

什么时候使用Java的@Override注释,为什么?

苏嘉志
2023-03-14
问题内容

使用Java @Override注释的最佳实践是什么?为什么?

@Override注解标记每个覆盖的方法似乎是过大的。是否存在某些编程情况要求使用@Override和其他不应该使用的情况@Override


问题答案:

每次你重写一种方法都有两个好处时使用它。这样做是为了使你能够利用编译器检查的优势,以确保你认为自己确实覆盖了某个方法。这样,如果你犯了拼写错误的方法名称或不正确匹配参数的常见错误,将会警告你方法实际上并没有像你认为的那样覆盖。其次,它使你的代码更易于理解,因为当方法被覆盖时,它更加明显。

另外,在Java 1.6中,你可以使用它来标记方法何时实现接口以实现相同的好处。我认为最好有一个单独的注释(例如@Implements),但总比没有好。



 类似资料:
  • 问题内容: 我的问题是非常基本的,为什么我们人们使用注释,此注释的重要性是什么? 在旧的JDK中,为什么它不显示为警告,但是在最新的JDK中,则需要“为什么..”? 问题答案: 假设您有: 您 确实 打算覆盖,但是由于签名中的错误,它不是这样做的。如果使用,则可以让编译器检测故障。它 还会 向任何 阅读 代码的人表明这将覆盖现有方法或实现接口-为他们提供有关当前行为以及重命名该方法可能产生的影响的

  • 这是我在这里的第一个问题,我对Java很陌生,如果这是一个愚蠢的问题,请原谅。 我正在使用JavaDocs和注释从内部“记录”我的应用程序的预期行为,但我只是好奇在一个永远不会返回null的方法上使用是否合适或良好,但可能是由于未来的开发人员错误。 谢谢。

  • 问题内容: 当我实现接口方法时,Eclipse将添加@Override批注。Eclipse似乎对此没有任何问题。而且,来自Cruise Control的自动化构建过程似乎对此没有问题。但是,当我从命令行构建并运行Javac的ant时,出现以下错误: Eclipse在Java 1.6下运行。Cruise Control正在运行Java 1.5。无论我使用哪个Java版本,我的蚂蚁构建都会失败。 问题

  • 问题内容: 奇怪的是: 似乎或多或少被定义为。通过这种方式很容易产生错误: 一些fname意外地以else块结尾。修复很简单,我们应该改用它,但是从表面上看,这似乎是一种不错的pythonic方式,并且比“正确”的方式更具可读性。 由于字符串是不可变的,所以为什么字符串错误是什么技术细节?什么时候进行身份检查更好,什么时候进行平等检查更好? 问题答案: 据我所知,检查对象身份是否相等。由于没有强制

  • 问题内容: 我有一个将客户发送到另一个站点来处理付款的应用程序。客户之外的另一个站点在我们的服务器上调用一个页面,让我们知道付款的状态。被调用页面会检查付款应用程序提供的参数,并检查我们是否知道该交易。然后,它更新数据库以反映状态。这一切都无需与客户进行任何互动即可完成。 我个人选择将此功能实现为JSP,因为将文件拖放到文件系统中比编译和打包文件然后将条目添加到配置文件中要容易得多。 考虑到页面的

  • 问题内容: 我目前正在Java课程中学习有关类继承的信息,我不知道何时使用该调用? 编辑: 我发现使用此代码示例: 因此,我知道在这里,你必须使用它来访问超类中的变量。但是,在其他情况下,该怎么;办?在其自己的? 问题答案: 精确 调用始终是多余的。它明确地在做否则会隐式地做的事情。这是因为如果你省略对超级构造函数的调用,则无论如何都将自动调用无参数的超级构造函数。并不是说这是不好的风格。有些人喜