MENU

【Java Silver 試験】ポリモーフィズムとオーバーライドの理解

今日もJavaの知識を深めるために、一緒に問題を解きましょう。

問題

以下のプログラムを実行した場合の出力を選んでください。正しい選択肢を選んでください。

class Vehicle {
        void startEngine() {
            System.out.println("Starting the vehicle engine");
        }
    }

    class Car extends Vehicle {
        @Override
        void startEngine() {
            System.out.println("Starting the car engine");
        }
    }

    public class Main {
        public static void main(String[] args) {
            Vehicle myVehicle = new Car();
            myVehicle.startEngine();
        }
    }

選択肢

  • A. Starting the vehicle engine
  • B. Starting the car engine
  • C. コンパイルエラー
  • D. 実行時エラー

答えと解説

回答を見る

答え

B. Starting the car engine

解説

解説のポイント:

  • オーバーライドの仕組み
  • ポリモーフィズムの理解
  • 参照型と実際のオブジェクト型の違い

Javaでは、オーバーライド(上書き)はオブジェクト指向プログラミングの重要な概念です。

上記のコードを見てみましょう。VehicleクラスのstartEngineメソッドは、Carクラスの中でオーバーライドされています。

これにより、Vehicleの参照型を持つmyVehicleCarのインスタンスを指している場合、メソッド呼び出しは実際のオブジェクト型であるCarクラスのstartEngineを呼び出します。

つまり、実行時には"Starting the car engine"がコンソールに出力されます。

目次