覆盖静态方法和最终方法

时间:2011-12-17 19:29:27

标签: java inheritance overrides

我知道在 Java 中,static方法不能被子类覆盖。

两个问题:

1。为什么?有人能解释一下里面的原因吗?

2. 那么子类可以覆盖超类中的final方法吗?

1 个答案:

答案 0 :(得分:12)

不会在特定实例上调用静态方法 - 因此不能以多态方式调用。它们在类型本身上被调用 - 绑定的任何内容都不依赖于任何仅在执行时可用的信息。关于多态调用的观点是最终执行的方法实现取决于调用目标的执行时类型;静态方法调用没有目标。

不,子类不能覆盖最终方法 - 使方法最终的最重要的一点是防止它被覆盖。