Inheritance of Static Methods in Java
Despite the claim that static methods are not inherited in Java, code demonstrates the contrary.这种矛盾提出了一个问题:静态方法是否真正继承了?
要理解这种明显的悖论,重新审视Java成员遗传的概念至关重要。根据这本书,超级分类的可访问成员(不使用“超级”)被认为是继承的。但是,Sun Java教程提供了更广泛的视角:package-private成员
。基于此,静态方法是继承的,因为它们本质上是公开的。它们可以通过简单的名称访问,并且不绑定到特定的实例。
唯一具有继承静态方法的特殊性是当在子类中介绍具有相同签名的新静态方法时,它们的行为。在这种情况下,现有的静态方法是隐藏的,而不是被覆盖。这种行为可确保特定于子类的静态实现不受影响。因此,本书对成员继承的解释适用于实例和静态方法,并以区别为了使静态方法总是可见,并且如果它们在超级分类中可访问。此外,访问隐藏的静态方法取决于调用是从超类还是子类别出现。免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3