静的フィールドを非表示にすると、そのフィールドがサブクラスでどのようなアクセスレベルにあるかに制限はなく、非静的でも他のデータ型でも可能です。Javaが非表示のメソッドのアクセス修飾子を制限するのはなぜですか?
一方、静的メソッドを隠すと、スーパークラスから静的メソッドを隠す静的メソッドは、隠されたメソッドよりも多くのアクセスを可能にしますが、そうではありません。
AFAIK、静的メソッドのリンクは、とにかくコンパイル時に実行されるため、なぜそのような制限がありますか?
P.S.疑問はちょうど好奇心からです。
Jonの疑惑(Iのdidnを簡単にコミットすることができますなぜなら、なぜJLSがそのように設計されているのかということです):http://stackoverflow.com/questions/26963828/reducing-the-visibility-of-a -static-method。フィールドについて:それらはポリモフィックではありません(静的であるかどうかにかかわらず、変更の範囲を限定する点はありません)。 – Pshemo
投稿の編集前に編集 –
編集前の状態に復元されました。なぜ人々には「フィールドが許可され、メソッドが許可されないのか」という疑問を理解することは望ましくありません。 – Bax