オブジェクト指向プログラミングa 第9回『クラスの継承 (前編)』〜 1.問題提起


●クラスの継承 (前編)
参考資料:「Javaを学ぶ 第10回 (2003年2月 )」

【柔軟性を失うプログラム】
 ・プログラムを開発していく途中で,扱うべきデータ型(クラス)が,増えたらどうなるか?
   →そのままでは,追加された新しいクラス型のオブジェクトを扱えない
    (下の例では,drawYourself()メソッドはTriangle型しか受け取れないため)
   →そこで,追加された新しいクラス型を扱うメソッドをオーバロードして追加してみる。
   →一応,解決できたようだが,本当にこれでよいのか??

List 1, List 2, List 3, List 4, List 5, List 6



・新しいクラスが追加されるごとにそれを扱うメソッドをオーバロードで追加していくと,プログラムが柔軟でなくなってしまう。
  ※新しいクラスを扱うすべての箇所(プログラムによっては数百箇所になる)に新しいメソッドを追加していかなければならない
   (それらの内容はほとんど同じにもかかわらず)
   → プログラムが複雑化・巨大化し,その結果,理解しにくく誤りが入り込みやすくなるし,変更しにくくなる。
  ※一箇所でも書き忘れるとコンパイルエラーになる


そこで,オブジェクト指向は『クラスの継承』と『メソッド・オーバライド』という考え方でこの問題を解決している。


次へ進む