E5.1 抽象クラスの導入

プログラム

E5_1

プログラムの説明

抽象クラスの導入

クラス図を見てください。Dice、EvenDiceとOddDiceには同じ振る舞いがあることが分かります。

クラス名とコンストラクタ名はそれぞれ違いますが、castメソッドgetValueメソッドが同じことが分かります。

この同じ振る舞いだけを抽出したものがインタフェースです。インタフェース名をCastableとします。

インタフェースと具象クラスの間に抽象クラスのAbstractDiceを導入します。具象クラスのソースコードの重複を防ぐためです。

では、演習としてCastable、Dice、EvenDiceとOddDiceのソースコードを参考に抽象クラスであるAbstractDiceを完成させてください。ただし、具象クラスであるDice、EvenDiceとOddDiceも修正してください。