Java 继承中的静态方法
尽管人们普遍认为静态方法在 Java 中不被继承,但仍然存在一个令人费解的异常。这种混乱源于对 Java 语言中继承本质的误解。
根据 Java 官方文档,所有可访问的方法都是由子类继承的。这包括公共、受保护和包私有方法。继承的方法可以按原样使用、重写、隐藏或用新方法补充。
对于静态方法,继承行为的不同之处仅在于子类中重写的静态方法隐藏了继承的方法方法而不是覆盖它。当从子类调用时,将执行子类中的隐藏方法,而不是继承的方法。
因此,能够访问并调用 B 类中的静态方法 display() 是因为方法与超类的其他可访问成员一起继承。 B.display() 看似异常的行为也有效,因为它调用 B 类中隐藏的静态方法而不是继承的方法。
覆盖和隐藏之间的区别具有重要意义。在重写的情况下,子类中的方法总是执行,无论它是从超类还是子类调用。但是,在隐藏的情况下,调用的方法取决于上下文。如果从超类调用静态方法,则继承的方法将执行;否则,将执行子类中的隐藏方法。
以上是Java 中的静态方法真的继承吗?的详细内容。更多信息请关注PHP中文网其他相关文章!