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 に答える