ホームページ > Java > &#&チュートリアル > 静的メソッドは実際に Java で継承しますか?

静的メソッドは実際に Java で継承しますか?

Barbara Streisand
リリース: 2024-12-12 11:30:13
オリジナル
992 人が閲覧しました

Do Static Methods Actually Inherit in Java?

Java の静的メソッドの継承

Java では静的メソッドは継承されないという共通の理解にもかかわらず、不可解な例外が存在します。この混乱は、Java 言語における継承の性質の誤解から生じています。

Java の公式ドキュメントによると、アクセス可能なすべてのメソッドはサブクラスによって継承されます。これには、パブリック メソッド、プロテクト メソッド、およびパッケージ プライベート メソッドが含まれます。継承されたメソッドは、そのまま使用することも、オーバーライドすることも、非表示にすることも、新しいメソッドで補足することもできます。

静的メソッドの場合、継承動作は、サブクラスでオーバーライドされる静的メソッドが継承されたメソッドを非表示にするという点でのみ異なります。メソッドをオーバーライドするのではなく。サブクラスから呼び出されると、継承されたメソッドの代わりにサブクラスの隠しメソッドが実行されます。

したがって、クラス B の静的メソッド display() にアクセスして呼び出すことができるのは、メソッドは、スーパークラスの他のアクセス可能なメンバーとともに継承されます。 B.display() の一見異常な動作も、継承された静的メソッドではなく、クラス B の非表示の静的メソッドを呼び出すため機能します。

オーバーライドと非表示のこの違​​いは、重要な意味を持ちます。オーバーライドの場合、サブクラス内のメソッドは、スーパークラスから呼び出されたかサブクラスから呼び出されたかに関係なく、常に実行されます。ただし、非表示の場合、呼び出されるメソッドはコンテキストによって異なります。静的メソッドがスーパークラスから呼び出された場合は、継承されたメソッドが実行されます。それ以外の場合は、サブクラスの隠しメソッドが実行されます。

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

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