★このページはまだ書きかけです。
!!データ構造を継承すべき
継承を利用する際にはとても注意する必要があります。
そもそも継承というのは、継承元の上位クラス(スーパークラス)のデータ構造を継承先の下位クラス(サブクラス)が引き継ぐ事です。場合によっては
*拡張
とも呼ばれます。
継承には次の2通りがあり得ます。
#サブクラスにてメソッドのみを追加する(メソッドのみの拡張)
#サブクラスにて属性とメソッドを追加する(データ構造の拡張)
「クラスとはデータ構造」で書いたようにデータ構造が異なるから別のクラスとして設計するので、属性の追加がない1番の継承はデータ構造の変更がありません。つまりスーパークラスとサブクラスにおいてデータ構造は同じです。
これは原則に反するためうまくない設計と言えます。
!!日付クラスを継承した債権債務日付クラスを考えてみる
商取引の支払いには手形がよく利用されますが、手形の振り出しから支払日までの猶予期間のことを
*手形サイト(支払い猶予期間)または単にサイト
と言います。
日付クラスにこの属性を追加してデータ構造を拡張することを考えてみます。