ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
本稿は Java の super キーワードに関する記事です。super は「親クラス (スーパークラス) を指す参照」で、継承関係にあるクラスから親のフィールド・メソッド・コンストラクタにアクセスするために使います。
super の主な用途
| 用途 | 概要 |
|---|---|
| 親クラスのコンストラクタ呼び出し | super(...) |
| オーバーライドした親メソッドを呼び出す | super.method() |
| シャドーイングされた親フィールド参照 | super.field |
| ジェネリクスの境界 (記述子) | <? super T> (型システム上の意味) |
1. 親クラスのコンストラクタを呼び出す
|
public class Animal { |
サブクラスのコンストラクタからは、最初に親のコンストラクタが必ず呼ばれます。明示的に super(...) を書かない場合、コンパイラが暗黙のうちに super() (引数なし) を呼びます。親に引数なしコンストラクタが無いとコンパイルエラーになります。
2. オーバーライドした親メソッドを呼び出す
|
public class Animal { |
サブクラスでオーバーライドした親の実装にも一度寄り道してから処理を続けたいときに使います。@Override + super.method() は典型的な「親の動作を拡張する」パターンです。
3. 親クラスのフィールドへアクセス
|
public class Parent { |
ただしフィールドのシャドーイングは混乱の元です。実務では避け、必要なら別名にするのが安全です。
4. ジェネリクスの ? super T
|
// PECS: Producer Extends, Consumer Super |
ここでの super はインスタンスへのアクセスではなく、ジェネリクスの型境界 (Consumer 側) を表す記号です。PECS の原則: 取り出すなら ? extends T、書き込むなら ? super T。
this と super の使い分け
| キーワード | 指す対象 | 典型用途 |
|---|---|---|
this | 現在のインスタンス自身 | シャドーイング解消・コンストラクタ間呼出・自身を返す |
super | 親クラス側の実装 | 親コンストラクタ呼出・親メソッド/フィールド参照 |
注意点
super(...)はコンストラクタ本体の先頭でのみ呼べる。this(...)と同時には使えない- 親クラスに引数なしのコンストラクタが無いなら、子側で 必ず明示的に
super(...)を呼ぶ superは1 階層上の親を指す。祖父母クラスへ直接アクセスはできない- インタフェースのdefault メソッドを呼ぶには
InterfaceName.super.method()という特殊構文を使う - 静的 (
static) コンテキストではthis同様に使えない - 過度な継承は密結合を生む。継承より合成 (Composition over Inheritance) の検討も
関連
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- 【django】ログイン 認証機能 2026-09-08 03:22:09
- MySQL ERROR 1063 Incorrect column specifier for column|原因と直し方 2026-09-08 03:11:09
- 【PHPエラー】Object of class stdClass could not be converted to string 2026-09-07 07:46:04
- Julia Genie ローカル開発サーバ起動完全ガイド 2026-09-07 07:46:04
- Wi-Fi とは|規格と世代(Wi-Fi 4〜7)・周波数帯・CSMA/CA・WPA3 NEW 2026-09-07 07:45:13
- set コマンドでシェルオプションと位置パラメータを操作 | bash 2026-09-07 07:45:13
- JPEG(.jpg/.jpeg)画像形式の完全ガイド — 仕様・マジックナンバー・他形式との比較・EXIF 2026-09-07 07:45:13
- UE5 Get Overlapping Actorsで特定クラスだけ処理|Class Filter・Cast To 2026-09-07 07:45:13
- Linuxで特定拡張子のファイルを再帰削除|find -deleteの安全手順 2026-09-07 07:45:13
- Django CBVでテンプレートに値を渡す|get_context_data・extra_context 2026-09-07 07:45:13
- Linuxで複数ファイルの文字列を一括置換|find・sed・xargsの安全手順 2026-09-07 07:45:13
- Laravelルートグループ|prefix・middleware・nameで一括管理 2026-09-07 07:45:13
- Linux whichコマンドの使い方|絶対パス取得とtype・command -vの違い 2026-09-07 07:45:13
- Linux catコマンドの使い方|行番号表示・複数ファイル連結 2026-09-07 07:45:13
- unable to execute 'gcc': No such file or directory 2026-09-07 07:45:13
コメントを削除してもよろしいでしょうか?