オブジェクト指向プログラミングa 第9回『クラスの継承 (前編)』〜 1.問題提起 |
●クラスの継承 (前編)
参考資料:「Javaを学ぶ 第10回 (2003年2月 )」
【柔軟性を失うプログラム】
・プログラムを開発していく途中で,扱うべきデータ型(クラス)が,増えたらどうなるか?
→そのままでは,追加された新しいクラス型のオブジェクトを扱えない
(下の例では,drawYourself()メソッドはTriangle型しか受け取れないため)
→そこで,追加された新しいクラス型を扱うメソッドをオーバロードして追加してみる。
→一応,解決できたようだが,本当にこれでよいのか??
List 1, List 2, List 3, List 4, List 5, List 6
・新しいクラスが追加されるごとにそれを扱うメソッドをオーバロードで追加していくと,プログラムが柔軟でなくなってしまう。
※新しいクラスを扱うすべての箇所(プログラムによっては数百箇所になる)に新しいメソッドを追加していかなければならない
(それらの内容はほとんど同じにもかかわらず)
→ プログラムが複雑化・巨大化し,その結果,理解しにくく誤りが入り込みやすくなるし,変更しにくくなる。
※一箇所でも書き忘れるとコンパイルエラーになる
そこで,オブジェクト指向は『クラスの継承』と『メソッド・オーバライド』という考え方でこの問題を解決している。
次へ進む