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

在Java中实现抽象方法时,是否应该添加@Override批注?

关翰
2023-03-14
问题内容

在Java中重写非虚拟方法时,@Override建议使用批注,但是如果我实现抽象方法怎么办?我@Override也应该使用吗?


问题答案:

@Override在这种情况下,我倾向于使用,以便在超类发生更改(完全删除方法或更改其签名等)时在子类中标记该方法。

唯一真正的区别是,如果没有注释,则如果更改或删除了超类/接口中的方法,则所讨论的实现将变成该类的“常规”方法。因此,如果仅为了履行合同而实施方法,则应添加注释。如果该方法在您的类中是有意义的,则无论任何已实现的接口或继承的抽象方法如何,您都不应添加它。



 类似资料:
  • 问题内容: 在界面中添加Javadoc注释并在实现中添加非Javadoc注释是否正确? 当您自动生成注释时,大多数IDE都会为实现生成非JavaDoc注释。具体方法不应该有描述吗? 问题答案: 对于仅实现(不是覆盖)的方法,请确定为什么不这样做,尤其是如果它们是公共的。 如果您处于压倒一切的情况,并且打算复制任何文本,那么绝对不能。复制是导致差异的必经之路。结果,用户将基于检查父类型还是子类型中的

  • 问题内容: 说我有以下抽象类: 我应该在方法主体中添加什么? 我看到了很多具有的代码,如上所示。但是,这似乎是多余的,因为任何未实现的子类在实例化时都会引发。 是否留空为Pythonic ,如下所示: 这是Python文档中有关Abstract Base Classes的内容 ,但是我不确定这只是占位符还是实际的代码编写示例。 如果可以只留下三个点(),我应该何时使用? 问题答案: 该文档的目的是

  • 我曾尝试将Laravel4.2应用程序迁移到Laravel5.0,之前在Laravel4.2中,您有一个BaseController,您创建的其他控制器可以扩展它,这意味着如果我在其中添加一个方法。其他控制器将扩展BaseController可以使用它。 现在在Laravel5.0上,他们以某种方式更改了它,而不是使用类,而是使用了一个抽象类 现在我不熟悉抽象类是什么,所以我的主要音乐会是我仍然能

  • 所以我有两个类。一个只有纯粹的虚拟函数。另一个实现了这些函数,并从第一个类派生出来。我知道我不能实例化第一个类。但是当我试图创建第二个类的对象时,它也失败了。 我的第二节课大体上是这样的: 执行: 下面是我如何实例化它并得到错误: 我哪里做错了? 第一课

  • 问题是: 我有一个叫做Schema的基类,它是抽象的,它是一个未生成的类。我有两个从Schema继承生成的JAXB类:FixedWidthSchema和DelimitedSchema。 我使用外部绑定(xjb)文件来指定XSD和Java类之间的映射。 在基类模式中,我定义了几个方法: 公共架构静态创建(Model m),它从提供的模型创建架构。 公共抽象Writer marshal(),它将当前架

  • 我需要做一个方法,可以添加这些数据类型到一个arraylist内的cart类。但如果我写 它只会接收推车类型的数据,所以我不能输入食物或饮料,或Miscs类型的数据,甚至有相同的细节,如名称和价格。