为什么CheckStyle建议我使用最终方法?

Man*_*uro 5 java final checkstyle

我正在使用eclipse checkstyle插件.我在类A中有几个方法在类B中被覆盖.对于大多数方法,我有以下警告

该函数SearchAndReplace不被认为是继承的
- 它必须被声明为abstract或final或将其留空.

将方法声明为final是否有任何优势?

编辑

我知道关键字final是什么用的.我知道它可以防止覆盖方法,是否有其他优点,如性能或类似的东西?

aio*_*obe 12

当你声明一个方法是最终的时,你会说这个方法可能没有被覆盖.

引用Java语言规范:

可以将方法声明为final以防止子类覆盖或隐藏它.

尝试覆盖或隐藏最终方法是编译时错误.

共同的口号(我相信约书亚布洛赫)是

           " 继承或其他设计和文件禁止它 "

因此,除非您的意图是让子类覆盖该方法(并且可能更改超类的行为(所有方法在Java中都是虚拟的)),然后使方法最终.