014 継承(finalメソッド) 035 問題

問題

final修飾子を使用して、calculateArea メソッドを持つ Shape クラスを作成してください。このメソッドは各形状に固有の面積を計算し、戻り値として返します。
Shape クラスを継承した異なる形状を表すサブクラスを作成し、calculateArea メソッドをオーバーライドして新しい計算方法を追加してみてください。しかし、calculateArea メソッドがfinal修飾子を持つため、サブクラスでの変更が禁止されます。

ヒント

final修飾子を使用してcalculateAreaメソッドを持つShapeクラスを作成すると、このメソッドはオーバーライドが禁止されます。サブクラスで新しい計算方法を追加しようとすると、コンパイルエラーが発生します。

Shapeクラスの作成:
Shapeクラスにfinal修飾子を使用してcalculateAreaメソッドを作成します。
calculateAreaメソッド内で、各形状に固有の面積を計算し戻り値として返します。

サブクラスの作成:
Shapeクラスを継承したサブクラスを作成します。
サブクラスでcalculateAreaメソッドをオーバーライドしようとすると、コンパイルエラーが発生します。(calculateAreaメソッドをオーバーライドし、コメントアウトしてください)

これにより、calculateAreaメソッドがfinal修飾子を持つため、サブクラスでの変更が禁止されます。

解答例

「014 継承」問題集リスト