『目的』 インターフェースは定数定義のためだけに使うものではありません。 『Before』 定数定義だけのインターフェースです。 /** * 定数定義用のインターフェース */ public interface Hoge { int NUM_HOGE = 1234; } このインターフェースを実装することでクラスでは定数として利用しますが、 その際に、いくつか弊害があります。 まず、「無意味に外部公開してしまう」ということです。 フィールドは「public static final」です。 他のクラスからはこのクラスに属する定数のように見えてしまいます。 また、外部公開しているということは、互換性を保証し続けねばなりません。 つまり、「不要になってもインターフェースを取り除くことができない」ということです。 あと、本来はスーパークラスだけに閉じこめておきたかった定数が、 サブクラスま