我能够运行以下代码:
class A
{
public static void display()
{
System.out.println("Inside static method of superclass");
}
}
class B extends A
{
public void show()
{
display();
}
}
public class staticMethodInheritance {
public static void main(String[] args) {
B b = new B();
b.display();
}
}
现在我能够从类B的实例访问方法display(),然后为什么说静态方法不能被继承。如果我在类B中声明一个方法显示,那么就会说隐藏了超类中的方法,并且调用了子类中的方法,然后再次这不是我们覆盖方法时所需的行为。
答案 0 :(得分:0)
与inherited static (class) methods and inherited non-static (instance)
方法的唯一区别在于,当您编写具有相同签名的新静态方法时,the old static method is just hidden, not overridden.
静态方法是继承的,但不能覆盖它们可以重新定义。