Java中的static final方法

时间:2018-11-12 07:00:46

标签: java override

Java不允许覆盖类的静态方法。因此,如果Super类方法是静态的,则在Sub Class中,相同名称的方法也需要具有相同签名的静态方法才能进行编译,尽管这不是方法的替代。下面是一个示例:

enter image description here

但是我的问题是,所以,如果这不是方法的重载,那为什么不能在Super Class中将静态方法定型为最终方法呢?

enter image description here

1 个答案:

答案 0 :(得分:3)

如果您查看JLS 8.4.3.3 final Methods,您会发现final方法修饰符可防止方法被或隐藏覆盖。

  

可以将方法声明为final,以防止子类覆盖或隐藏

     

尝试覆盖或隐藏最终方法是编译时错误。

static方法不能被覆盖,但是可以被隐藏final修饰符可防止它被子类static方法隐藏。