JavaのインタフェースとC言語のヘッダファイル(*.h)は、以下の点で共通点があると思う。
- 実装クラスや実装ファイルが外部に公開する、定数、メソッド/関数の情報を記載する。
- 機能を使う側、つまり取り込む側で インタフェースやヘッダファイルの情報(ファイル)を見つけられないと、コンパイルに失敗する。
まあ、Javaのインタフェースの場合、インタフェースで定義されている全てのメソッドについて、実装クラスでメソッドの実装を記載する必要があったりして、インタフェースとその実装クラスの関係性が、C言語のヘッダファイルと実装ファイルよりも密になっていると思うが、存在意義としては似ているものなのかな、と思った。