Java 不允许重写类的静态方法。因此,如果父类(super class)方法是静态的,则子类中的同名方法也需要是具有相同签名的静态方法才能编译,尽管它不是方法重写。下面是一个例子:
但我的问题是,如果这不是方法重写,那么为什么我不能将父类(super class)中的静态方法设为final?
最佳答案
如果你看JLS 8.4.3.3 final Methods ,您将看到 final
方法修饰符可防止方法被覆盖或隐藏。
A method can be declared final to prevent subclasses from overriding or hiding it.
It is a compile-time error to attempt to override or hide a final method.
静态
方法无法被重写,但可以隐藏。 final
修饰符可防止其被子类 static
方法隐藏。
关于java - Java中的静态final方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53257248/