[解決済み] Javaでは静的メソッドは継承されるのですか?
質問
を読んでいました。 プログラマーズ・ガイド・トゥ Java™ SCJP認定資格 Khalid Mughal著。
継承の章では、次のように説明されています。
メンバの継承は、宣言されたメンバと密接に結びついています。 アクセシビリティがあります。スーパークラスのメンバが、単純にその名前 のような特別な構文を使用せずに)サブクラスでその メンバは継承されたものとみなされます。
また、静的メソッドは継承されないと書かれています。しかし、以下のコードでは全く問題ありません。
class A
{
public static void display()
{
System.out.println("Inside static method of superclass");
}
}
class B extends A
{
public void show()
{
// This works - accessing display() by its simple name -
// meaning it is inherited according to the book.
display();
}
}
を直接使用するにはどうすればよいのでしょうか?
display()
クラス内の
B
? さらにもっと
B.display()
も動作します。
この本の説明は、インスタンスメソッドにしか適用されないのでしょうか?
どのように解決するのですか?
アクセス可能なすべてのメソッドはサブクラスに継承されます。
SunのJavaより チュートリアル :
サブクラスは、そのサブクラスがどのパッケージ内にあるかにかかわらず、親のパブリックおよびプロテクトされたメンバをすべて継承します。サブクラスが親と同じパッケージ内にある場合は、親のパッケージ非公開メンバも継承します。継承したメンバは、そのまま使用することも、置き換えることも、隠すことも、新しいメンバで補完することも可能です。
継承された静的(クラス)メソッドと継承された非静的(インスタンス)メソッドの唯一の違いは、同じ署名の新しい静的メソッドを書いたとき、古い静的メソッドはオーバーライドされず、ただ隠されることです。
より ページ オーバーライドと隠蔽の違いについて。
<ブロッククオート隠蔽とオーバーライドの区別は、重要な意味を持ちます。オーバーライドされたメソッドが呼び出されるのは、サブクラス内のメソッドのバージョンです。呼び出される非表示メソッドのバージョンは、それがスーパークラスとサブクラスのどちらから呼び出されるかに依存します。
関連
-
Java Exceptionが発生しました エラー解決
-
スレッド "main" で例外発生 java.net.BindException: アドレスは既に使用中です。NET_Bind
-
このラインで複数のマーカーを解決する方法
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでNullPointerExceptionを回避する方法
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] Pythonで静的なクラス変数は可能ですか?
-
[解決済み] Java内部クラスと静的ネストされたクラス
-
[解決済み] 静的クラスとシングルトンパターンの違い?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
java.util.NoSuchElementException 原因解析と解決方法
-
Java Error スレッド "AWT-EventQueue-0" で例外発生 java.lang.
-
eclipse で「アクセス制限: タイプ 'HttpServer' は API ではありません」というプロンプトが表示される。
-
プロローグでのコンテンツは禁止されています
-
プロジェクトの依存関係を解決できなかった 解決
-
Java コンパイルエラー - スレッド "main" で例外 java.lang.Error: 未解決のコンパイル問題です。
-
アイデア Springboot Web プロジェクトを jar にパッケージ化する場合、Error: 無効または破損した jarfile x.jar 解決策
-
Eclipse起動エラー:javaは起動したが、終了コード=1を返した(ネット上の様々な落とし穴)
-
テストが見つかりませんでした
-
[解決済み】サブクラスはプライベートフィールドを継承するのか?