Java 17 Silver ラボ

学習の画面へ

Java 17 Silver ・ 5. 継承とインタフェースの使用

メソッドのオーバーライド の練習問題と解説

Java 17 Silver ラボ の「5. 継承とインタフェースの使用 › メソッドのオーバーライド」の問題 7 問を載せています。問題を開くと、正解と選択肢ごとの解説が読めます。

メソッドのオーバーライド について

サブクラスで親のメソッドを定義し直すオーバーライドの決まりと、実行時にどちらのメソッドが呼ばれるかを扱う分類です。

オーバーライドでは、アクセス修飾子を親より狭くできません (public を protected にするとコンパイルエラー)。戻り値の型は同じか、親の戻り値のサブクラスにできます。@Override を付けると、オーバーライドになっていないときにコンパイルエラーで教えてくれます。

呼ばれるのは変数の型ではなく、実際のオブジェクトのメソッドです。ただし private メソッドはオーバーライドされず、static メソッドは「隠蔽」で、変数の型のメソッドが呼ばれます。親のコンストラクタからオーバーライドされたメソッドを呼ぶと子のメソッドが動き、子のフィールドはまだ初期化前 (0 や null) なのが典型的なひっかけです。

問題 (7 問)

「メソッドのオーバーライド」をこのサイトで解く

広告