1

当我尝试编译Child该类时,出现以下错误:

Child.java:2: method does not override or implement a method from a supertype
    @Override
    ^
1 error

这是为什么 ?我尝试init在子类中覆盖父类的。

class Parent {
    public static void init() {
        System.out.println("From the parent class");
    }
}

class Child extends Parent{
    @Override
    public static void init() {
        System.out.println("From the child class");
    }
}
4

2 回答 2

2

您不能覆盖静态方法 -您只能隐藏它。因此,您只能将@Override注释应用于实例方法:

class Parent {
    public void init() {
        System.out.println("From the parent class");
    }
}

class Child extends Parent {
    @Override
    public void init() {
        System.out.println("From the child class");
    }
}
于 2013-03-31T12:26:27.580 回答
0

您不能覆盖 java 中的静态方法。有关更多信息,请查看:为什么 Java 不允许覆盖静态方法?

于 2013-03-31T12:29:02.577 回答