代码Java时我们真的需要@Override等吗?

zfm*_*zfm 37 java overriding

可能重复:
您何时使用Java的@Override注释?为什么?

我想知道在@Override我们要覆盖的代码前添加的功能是什么.我已经完成了没有它,似乎一切都进展顺利(至少,对我而言).

Jam*_*ery 46

没有必要,但强烈建议.它可以防止你在脚下射击.它有助于防止在您编写一个您认为覆盖另一个函数但又拼写错误并且您完全意外行为的函数时的情况.


Ber*_*t F 29

添加@Override的功能是什么

当你说(通过注释)指定的方法应该覆盖超类方法(或在Java 6或更高版本中实现接口方法)时,它允许编译器仔细检查.实际上,如果方法没有覆盖超类方法(或实现接口方法),编译器会将此标记为错误.这通常表示您在方法名称中输入了拼写错误或在方法签名中出错.

我们真的需要@Override吗?

需要它?绝对不是,但它的这种便宜的方式

  • 向人类读者明确传达这是一种压倒一切的方法,并且
  • 在编译时捕获一个错误,一旦你知道要查找它,可能需要至少几个脑循环才能在运行时捕获

...当你的IDE帮助你包括它时甚至更便宜......


Art*_*cis 6

推荐使用它,因为它有助于管理一致性。想象一下,有人会更改超类方法的名称(并且只有在那里,不会根据它在类中执行名称更改,这是非常假设的:)),那么由于编译错误,您将是第一个知道的人。


jhu*_*ado 5

唯一的区别是,如果您使用 @Override 注释一个方法并且您没有覆盖任何内容,编译器会抱怨。

检查何时使用 javas 覆盖注释以及为什么?