http://docs.oracle.com/javase/tutorial/java/IandI/override.htmlに示されているように、Javaでは許可されています
- インスタンスメソッドをインスタンスメソッドでオーバーライドし、
- 静的メソッドによる静的メソッドの非表示
私の質問は、Javaがインスタンスメソッドによる静的スーパークラスメソッドの非表示を許可しない理由です。これは次のように行うことができます:
class Base {
static void foo () {}
}
class Derived extends Base {
void foo () {}
void access () {
foo ();
Base.foo ();
}
}
上記のアプローチに特別な問題は見られません。これは、静力学の(許可された)非表示がすでにあるのと同じくらい「厄介/複雑」なだけです。