1

面试的时候被问到can final method override....?

我说是。面试官有奇怪的手势。它有什么问题?我猜从语法上来说这是正确的答案。final 方法可以覆盖,但 final 方法不能被覆盖。
我的回答正确吗?

我发现有些人有兴趣重新打开这个问题。

4

6 回答 6

15

如果他的英语不好,那么你应该试着澄清他的意思。通信是构建软件的一个非常重要的方面。

除此之外:

  • final 方法可以覆盖其他方法
  • final 方法不能被覆盖。
于 2013-04-09T09:03:46.523 回答
4

最终(Java)

在 Java 编程语言中,final 关键字在几个不同的上下文中用于定义以后无法更改的实体。

final 方法不能被子类覆盖。这用于防止子类更改可能对类的功能或一致性至关重要的方法的意外行为。

于 2013-04-09T09:04:47.377 回答
1

我想有一点误解。如果他们真的按照您的措辞提出了这个问题,则不清楚他们问的是您以下哪一项:

  • 不能覆盖现有final方法
  • 可以覆盖现有的非final方法以防止进一步覆盖。final
于 2013-04-09T09:05:47.677 回答
1

我更容易这样想:无论你声明为 final 都意味着它在功能上是 100% 完整的,并且任何人都不应该被允许对其进行子类化、扩展等。

当然,您可以将覆盖函数标记为 final。但是您不能覆盖最终功能。

于 2013-04-09T09:06:05.217 回答
0

一个final类不能被子类化,一个final方法不能被子类覆盖,一个final变量只能被初始化一次

于 2013-04-09T09:06:06.500 回答
0

静态方法和最终方法不能在 java 中被覆盖。

于 2013-04-09T09:09:29.260 回答