問題
以下の形状(Shape)に関するクラス階層を作成してください。
- Shape(抽象クラス)
- メソッド:
getArea()
(面積を計算して返す) - メソッド:
getPerimeter()
(周囲の長さを計算して返す)
- メソッド:
- Circle(円)
- メンバー変数: 半径
- Rectangle(長方形)
- メンバー変数: 幅、高さ
- Triangle(三角形)
- メンバー変数: 辺の長さ(3辺)
ヒント
- Shape(抽象クラス)
- 抽象クラスとして、共通のメソッド
getArea()
とgetPerimeter()
を定義します。
- 抽象クラスとして、共通のメソッド
- Circle(円)
Circle
クラスを作成します。Circle
クラスはShape
クラスを拡張(継承)します。Circle
クラスには、メンバー変数として半径
を持ちます。
- Rectangle(長方形)
Rectangle
クラスを作成します。Rectangle
クラスはShape
クラスを拡張します。Rectangle
クラスには、メンバー変数として幅
と高さ
を持ちます。
- Triangle(三角形)
Triangle
クラスを作成します。Triangle
クラスはShape
クラスを拡張します。Triangle
クラスには、メンバー変数として辺の長さ(3辺)
を持ちます。
これにより、Shape
クラスを継承する Circle
、Rectangle
、Triangle
の3つの具象クラスができます。各クラスは自身の特有の属性(メンバー変数)を持ち、共通のメソッドを抽象クラス Shape
から継承しています。これによって、異なる形状のオブジェクトが共通のインターフェースを提供するクラス階層が構築されます。
→解答例