質問: オブジェクト指向で。 継承の他に、委譲といのが出てきますが。これは具体的にどういうことをするんですか? 継承よりも、委託の度合いが高そうですが。
回答: 委譲というのは、実質的な機能は別のクラス(委譲先のクラス)で行い、 自分自身は別のクラスを呼び出すことをメインとするものです。 継承と似たようなことができますが、 幾つか異なる点があります。 デメリットとしては、継承に比べてコードの記述量が多くなることです。 継承は何も書かなければ親クラスの機能が使えますが、委譲の場合はメソッドの呼び出しを実装しなくてはなりません。 こういうと、委譲ってめんどくさいと思われるかもしれませんが、委譲には柔軟性というメリットがあります。 例を挙げると ・親クラスの実装が変更された場合に、継承はもろにその変更の影響を受けるが、委譲なら別クラスを使用するなどの対応が可能 ・Javaの場合継承は一クラスしかできないが、委譲なら複数可能 ・継承なら親クラスのメソッドが全て公開されてしまうが、委譲なら必要なものだけ公開できる などなど。