1. ホーム
  2. java

インターフェースに含まれるフィールド

2023-11-19 07:09:04

質問

Javaでは基本的な質問ですが、OOPでは一般的な質問です。なぜインターフェースはフィールドを設定することができるのでしょうか?それはインターフェイスが行うことになっていることに反していませんか?

私が理解したところでは、インターフェースは英語では形容詞のようなものです。つまり、私のクラスがRunnableとSerializableというインターフェースを実装していれば、私のクラスがRunnableとSeriablizableであるための条件を満たすことをユーザに保証していることになるわけです。しかし、それだとインターフェースはステートレスになってしまいますが、Javaではフィールドを持つことが許されていますし...。

何か見落としているのでしょうか?

どのように解決するのですか?

インターフェイスのすべてのフィールドは public static final で、つまりは定数です。

一般的にこのようなインターフェースは避けることが推奨されますが、時にはメソッドを持たず、定数値のリストを格納するためだけに使われるインターフェースを見つけることができます。