【EffectiveJava[18]】

<第 4 章 クラスとインタフェース>
項目18: 抽象クラスよりインタフェースを選ぶ

■著書からの要点抜粋
・既存のクラスを、新たなインタフェースを実装するように変更することは容易にできます。
・インタフェースは、階層を持たない型フレームワークを構築することを可能にしています。
・インタフェースを発展させるよりは、抽象クラスを発展させるほうが、はるかに容易です。
・一旦、インタフェースがリリースされて広く実装されたら、
 インタフェースを変更することはほとんど不可能です。

■所感
最近になってインタフェースの有用性がわかってきた。気がする。
はじめは抽象クラスのほうが概念的にわかりやすかったのだけど、
インタフェースがとても扱いやすい、わかりやすいものと知ると好ましい。
しかし、最後の一文はまさにその通りなので。。
publicなインタフェースを作成するには注意しなければならない。本当に。

Effective Java プログラミング言語ガイド

Effective Java プログラミング言語ガイド