継承とインタフェース

http://d.hatena.ne.jp/lethevert/20050829/p3
私の理解では、継承は「実装の共有」であり、インタフェースは「型の共有」です*1。実装を共有する場合には継承を使いますし、型を共有する場合にはインタフェースを使います。is-a関係とか、特に考えたことはありません*2

少なくとも、継承したくない/できない理由*3が無いときに、手で委譲するコードを書くことはありません*4

*1:型の共有って変な表現ですが。まあ型をあわせたいという意味です

*2:これは問題かも

*3:多重継承になるとか、継承で得られる実装の一部だけを使いたいとか

*4:自動でやってくれるならありかも