015-002-009

配列でアップキャストを活用する

中級

問題説明

配列でアップキャストを活用する

この問題では: Shape型の配列にCircleRectangleのインスタンスをアップキャストして格納し、ポリモーフィズムを活用してそれぞれのarea()メソッドをループで呼び出して面積を標準出力に表示するプログラムを作成します。

学習目標: スーパークラス型の配列にサブクラスを格納してループ処理する方法を理解する

概要

Shape型の配列にCircleとRectangleを格納し、ループでarea()を呼び出すプログラムを作成してください。

仕様

  1. Shape クラスdouble area() メソッドを定義(0.0を返す)
  2. Circle がShapeを継承し、double radiusコンストラクタで受け取り、area()で 3.14 * radius * radius を返す
  3. Rectangle がShapeを継承し、double width, height をコンストラクタで受け取り、area()で width * height を返す
  4. mainでShape配列に Circle(5.0) と Rectangle(3.0, 4.0) を格納
  5. ループで各要素のarea()を呼び、Area: <面積> を出力

出力形式

Area: 78.5
Area: 12.0

コードを実行してみませんか?

この問題のコードエディタと実行機能を使用するには、ログインしてください。

アカウントをお持ちでない方

新規登録