Java不允许覆盖类的静态方法。因此,如果Super类方法是静态的,则在Sub Class中,相同名称的方法也需要具有相同签名的静态方法才能进行编译,尽管这不是方法的替代。下面是一个示例:
但是我的问题是,所以,如果这不是方法的重载,那为什么不能在Super Class中将静态方法定型为最终方法呢?
答案 0 :(得分:3)
如果您查看JLS 8.4.3.3 final Methods,您会发现final
方法修饰符可防止方法被或隐藏覆盖。
可以将方法声明为final,以防止子类覆盖或隐藏。
尝试覆盖或隐藏最终方法是编译时错误。
static
方法不能被覆盖,但是可以被隐藏。 final
修饰符可防止它被子类static
方法隐藏。