/ / Javaの静的メソッドをオーバーライドできますか?サブクラスで同じメソッドを作成すると、コンパイル時エラーが発生しますか? - java

Javaの静的メソッドをオーバーライドできますか?サブクラスで同じメソッドを作成すると、コンパイル時エラーが発生しますか? - java

私は静的メソッドをオーバーライドできないと思ったJavaではなく、サブクラスで全く同じメソッドを宣言するためのコンパイル時エラーではなく、Javaでのメソッド隠蔽と呼ばれます。しかし、私は静的メソッドをオーバーライドする必要がある場合。

// filename Test.java
public class Test {
public static void foo() {
System.out.println("Test.foo() called ");
}
public static void foo(int a) {
System.out.println("Test.foo(int) called ");
}
public static void main(String args[]) {
Test.foo();
Test.foo(10);
}
}

回答:

回答№1は2

ポリモーフィズムとスタティックが一緒に働くので、Javaの静的メソッドをオーバーライドすることはできません。静的メソッドはClassではなくインスタンスで呼び出されます。

スーパークラスの静的メソッドをサブクラスで非表示にすることができます。