
066
導
入
編
1
設
計
編
ア
キ
テ
ク
チ
ャ
編
2
3
4
5
6
7
2
スで実装の定義を置き換えることです。これをオーバーライドと呼びます。
もう1つは、スーパークラスが持っていないメソッドを新たに定義すること
です。まったく新しいメソッドを追加することもできますし、スーパークラ
スと同じメソッド名で引数だけを変えることもできます。これをオーバー
ロードと呼びます。オーバーロードは、スーパークラスのメソッドのバリ
エーションを増やす方法です。
図 2-18 の例では、商品クラスを継承して割引商品クラスを定義していま
す。割引商品クラスは、商品価格の計算時に割引金額を受け取り、それを割
り引いた金額を返すように拡張されています。また、割引商品クラスは、割
引期間の間だけ割引を実行します。割引期間外であれば商品価格の計算で割
引をしません。「商品価格を取得する」メソッドは、オーバーロードしてい
ます。
Item
+ getSellPrice()
- name
- description
- price
- tax
DiscountItem
- term
- discountPrice
+ getSellPrice()
+ getSellPrice(discountPrice)
+ setTerm(term)
+ setDiscountPrice(discountPrice)
図
2
-
18
:継承の例