014 継承(暗黙的なスーパークラスのコンストラクタ呼び出し) 010 問題

問題

車両(Vehicle)という親クラスを作成します。このクラスには車両の色を表すインスタンス変数が含まれ、コンストラクタで初期化されます。さらに、車両の色を取得するメソッドも作成します。次に、自動車(Car)クラスを作成し、Vehicle を継承します。Car クラスには自動車の速度を表すインスタンス変数があり、コンストラクタで初期化されます。自動車の速度を取得するメソッドも作成します。各クラスでコンストラクタを実装し、暗黙的なスーパークラスのコンストラクタ呼び出しが行われていることを確認します。

ヒント

  1. 車両クラス (Vehicle):
    • Vehicle クラスでは、color という車両の色を表すインスタンス変数を持ちます。
    • コンストラクタを実装して、車両の色を初期化します。
    • getColor() メソッドを実装して、車両の色を取得します。
  2. 自動車クラス (Car):
    • Car クラスは Vehicle クラスを継承します。
    • Car クラスには新しいインスタンス変数 speed があり、自動車の速度を表します。
    • コンストラクタを実装して、親クラス Vehicle のコンストラクタを呼び出し、自動車の速度も初期化します。
    • getSpeed() メソッドを実装して、自動車の速度を取得します。
  3. 確認:
    • Car クラスのコンストラクタ内で、super(color) を使用して親クラス Vehicle のコンストラクタを呼び出します。
    • 各クラスのインスタンスを作成し、メソッドを呼び出して期待される結果が得られるか確認します。

このヒントを参考に、各クラスの構造を実際にコードに落とし込んでみてください。

解答例

「014 継承」問題集リスト