×
継承とポリモーフィズム
オーバーライドを成功させるためには、以下の厳格なルールを満たす必要があります。 1. メソッド名、引数の型・個数・順序(シグネチャ)が完全一致すること。 2. 戻り値の型は、親と同じ型か、そのサブクラスの型(共変戻り値型 / Covariant Return Type)であること。 3. アクセス修飾子は、親と同等かそれ以上に緩い範囲に設定すること(狭めるのは禁止)。 4. throws節に指定する例外は、親が宣言した例外と同等か、そのサブクラス(または非検査例外)であること(親より広い検査例外の追加は禁止)。 なお、親クラスで final または static または private と宣言されているメソッドは、子クラスでオーバーライドすることができません。

試験でのポイント

Java Silver試験においてオーバーライドは、非常に引っかかりやすい細かなルールが大量に問われる重要分野です。 1. アクセス制御の縮小禁止:親が protected void test() のとき、子で void test()(指定なし)と書くと、アクセス権を狭めたためコンパイルエラーになります。 2. 引数が違うとオーバーロードになる:オーバーライドのつもりで引数の型を変えてしまうと、上書きではなく単なる「オーバーロード」として扱われてしまい、期待した多態性が機能しなくなります。 3. privateメソッドは不可視:親の private メソッドと同名のメソッドを子で定義しても、オーバーライドではなく「子クラスで新規定義された無関係なメソッド」となります。 4. staticメソッドの隠蔽:static メソッドと同名の static メソッドを子で定義することは可能ですが、これはオーバーライドではなく「メソッド隠蔽(Hiding)」と呼ばれます。

関連する用語

クラスを引き継ぐ「継承」や、動的メソッド呼び出しを可能にする「ポリモーフィズム」、未実装メソッドの強制オーバーライドを要求する「抽象クラスと抽象メソッド」「インターフェース」はオーバーライドと直接連動します。

ファクトチェック:1Z0-825-JPN(2026-08-01確認)。試験番号1Z0-825-JPN、試験時間90分、60問、合格ライン65%です。

この記事は公式出題範囲・チェックリストとの対応を編集部で確認した学習解説です。

公式資料

用語集一覧 / ← 前の記事 / 次の記事 →