継承にかかわる諸問題

「継承」はオブジェクト指向ではよく話題になり、また問題視されます。しかしそれは使い方が間違っているからです。

まとめ

オブジェクト指向ではよく注目の的になる「継承」に関わる問題を見てきまし た。これらの問題を引き起こす元は一つです。それはオブジェクトを内包とし て考えず、外延とか機能といった副次的な要素でしか見ていないからです。

継承というのはよくオブジェクト指向の宣伝文句になります。「継承を使いこ なせてこそ一流」とか「継承こそオブジェクト指向の真髄」と。こうした宣伝 文句にひっかかって、多くの人は継承をかっこいいものと考え、それを使いた がります。しかし本来は継承を使わねばならない場所は多くないのです。必要 のない個所で無理に継承を使うせいでシステム全体がゆがんでしまうのです。

「継承」が難しいのは、これが今まで見てきたように多くの問題をかかえてい るからです。そしてその問題のほとんどは、オブジェクトを内包(意味)として 考えていないから起きることです。オブジェクトを内包として考えることがで きれば、継承なんて簡単なものです。「○○は××の一種である」これが継承 であって、これ以上の難しい事はないのです。

特に(抽象的なライブラリではない)具体的なアプリケーションでは、 継承関係というのはほとんど出てきません。そしてそれでいいのです。継承は ないのが普通であって、無理に作り出す必要もありません。

最後に、「継承をうまく使えるようになりたい」とか「継承を極めよう」と思 うあなたに忠告。あなたは既にオブジェクト指向の暗黒面に片足を突っ込んで います。あなたは銃を手にしたらとにかく撃ちたがる性格じゃありませんか?