ホームページ > Java > &#&チュートリアル > 静的メソッドは本当に Java に継承されるのでしょうか?

静的メソッドは本当に Java に継承されるのでしょうか?

DDD
リリース: 2024-12-22 06:44:11
オリジナル
934 人が閲覧しました

Are Static Methods Truly Inherited in Java?

Java における静的メソッドの継承

Java では静的メソッドは継承されないという主張にもかかわらず、コードはその逆を示しています。この矛盾により、静的メソッドは本当に継承されるのか?

この明らかな矛盾を理解するには、Java のメンバー継承の概念を再検討することが不可欠です。この本によると、スーパークラスのアクセス可能なメンバー (「スーパー」を使用しない) は継承されたとみなされます。

ただし、Sun Java チュートリアルでは、より広い観点が提供されています。

  • サブクラスはすべてを継承します。パッケージに関係なく、親クラスの パブリック メンバーと保護されたメンバー
  • サブクラスが同じ内にある場合package-private members.

これに基づいて、静的メソッドは本質的にパブリックであるため継承されます。これらは単純な名前でアクセスでき、特定のインスタンスにバインドされません。

継承された静的メソッドの唯一の特徴は、同一のシグネチャを持つ新しい静的メソッドがサブクラスに導入されたときの動作です。この場合、既存の静的メソッドはオーバーライドされず、非表示になります。この動作により、サブクラスに固有の静的実装が影響を受けないことが保証されます。

したがって、この本のメンバー継承の説明はインスタンスと静的メソッドの両方に適用されますが、静的メソッドは常に表示され、継承される場合には継承されるという違いがあります。スーパークラスでアクセス可能。さらに、非表示の静的メソッドへのアクセスは、呼び出しがスーパークラスから行われるかサブクラスから行われるかによって異なります。

以上が静的メソッドは本当に Java に継承されるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート