我想在"Java在一个简单的“一书中指出这几行,这给我带来了一些困惑:
私有方法不是由子类继承的,因此不能被重写(也就是说,所有私有方法都是隐式最终的)。
我解释说,所有的私有方法都是最终的,我了解到:
我的陈述正确吗?
发布于 2014-11-22 15:02:14
最后的方法不能被覆盖,但是可以从子类调用它们。
这可能是真的,也可能不是,这取决于修饰符,以及重写类的位置。如果该方法是私有的或默认的(没有修饰符),则不能从子类调用该方法,除非您的子类位于同一个包中。
私有方法不能被覆盖,也不能从子类中调用它们。
是真的。私有方法不能被覆盖的原因,是因为它们无法被看到。但是,这并不意味着不能重写的方法是私有的。
发布于 2014-11-22 15:35:45
在我看来,如果你继续思考这个关键词,它会有所帮助。
私有
这是访问修饰符,它说明了哪个类可以看到这个方法。(即只有包中的该类、子类和其他类)。因此,任何标记为私有的方法都只能从同一个类中看到。因此,语句是正确的,因为标记为私有的方法不能从任何子类中看到,更不用说重写或调用了。
最终
这说明任何与此方法的{}有关的内容都不能从外部更改。因此,任何标记为final的方法都不能被覆盖。但是,标记为final的方法可以根据其访问修饰符从其他类调用。因此,关于final的语句也是正确的,但是调用部分也严格依赖于方法的访问修饰符。
发布于 2017-02-13 19:15:18
final不能覆盖private不能在子类等外部类中使用。
private 方法是隐式的最终,因此不能覆盖。
final 方法并不总是私有的,所以如果不是私有的,可以在子类中访问。
https://stackoverflow.com/questions/27078702
复制相似问题