gpt4 book ai didi

java - 为什么 Java 中的私有(private)方法是隐式最终的?

转载 作者:行者123 更新时间:2023-11-30 07:05:07 25 4
gpt4 key购买 nike

我想在“Java in a Nutshell”一书中指出这一行,这让我有些困惑:

private methods are not inherited by subclasses and, therefore, cannot be overridden (i.e., all private methods are implicitly final).

我解释说所有私有(private)方法都是最终的,并且我理解:

  • Final 方法不能被覆盖,但可以从子类中调用它们。
  • 私有(private)方法不能被覆盖,也不能从子类中调用。

我的陈述是否正确?

最佳答案

Final methods cannot be overriden, but they can be called from a subclass.

这可能是正确的,也可能不是正确的,这取决于修饰符以及您的重写类所在的位置。如果该方法是私有(private)的或默认的(无修饰符),则您不能从子类调用该方法,除非您的子类在同一个包中。

Private methods cannot be overriden, and they cannot be called from a subclass.

没错。私有(private)方法不能被覆盖的原因是因为它们不可见。然而,这并不意味着不能被覆盖的方法是私有(private)的。

关于java - 为什么 Java 中的私有(private)方法是隐式最终的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27078702/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com