Java における静的メソッドの継承
Java では静的メソッドは継承されないという主張にもかかわらず、コードはその逆を示しています。この矛盾により、静的メソッドは本当に継承されるのか?
この明らかな矛盾を理解するには、Java のメンバー継承の概念を再検討することが不可欠です。この本によると、スーパークラスのアクセス可能なメンバー (「スーパー」を使用しない) は継承されたとみなされます。
ただし、Sun Java チュートリアルでは、より広い観点が提供されています。
これに基づいて、静的メソッドは本質的にパブリックであるため継承されます。これらは単純な名前でアクセスでき、特定のインスタンスにバインドされません。
継承された静的メソッドの唯一の特徴は、同一のシグネチャを持つ新しい静的メソッドがサブクラスに導入されたときの動作です。この場合、既存の静的メソッドはオーバーライドされず、非表示になります。この動作により、サブクラスに固有の静的実装が影響を受けないことが保証されます。
したがって、この本のメンバー継承の説明はインスタンスと静的メソッドの両方に適用されますが、静的メソッドは常に表示され、継承される場合には継承されるという違いがあります。スーパークラスでアクセス可能。さらに、非表示の静的メソッドへのアクセスは、呼び出しがスーパークラスから行われるかサブクラスから行われるかによって異なります。
以上が静的メソッドは本当に Java に継承されるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。