マーカーインタフェース
マーカーインタフェース (marker interface) とは、オブジェクト指向プログラミングにおいて、メソッドやフィールドが一切定義されていないインタフェース。
Javaではオブジェクトをシリアライズできることを示すSerializable、Objectのclone()メソッドが呼び出せることを示すCloneable、リストにおいて高速なランダムアクセスを実現するRandomAccessがある。 いずれもinstanceofの右オペランドとして使用され、インスタンスのクラスごとに実装を選択するなど、実行時にオブジェクトに関する「ヒント」を得るために使われている。
Javaにおけるマーカーインタフェースの書き方の例を示す。