Javaのインターフェースの特徴
インターフェースの特徴として以下の2つが挙げられる
- インターフェースはインスタンスフィールド(インスタンス変数)を持つことが出来ない
- 具象メソッド(抽象メソッドではないメソッド)を実装することができない
interface はインスタンスフィールドを持たない
インターフェースでは、フィールドを宣言しようとするとpublic static final
のように定数を宣言したものとして扱われる。
具象メソッドを実装することが出来ない
抽象メソッドしか定義することが出来ず、interfaceは実装された場合インスタンスが生成された場合には抽象メソッドは必ずオーバーライドされる必要がある。
おまけ
各クラスの共通化のために、インターフェースの代わりにクラスを作成するときに注意が必要。各クラスが何かしらのサブクラスである場合、共通化してクラスにしたものを継承することは出来ない。なぜなら、Javaでは、スーパークラスは1つしか持てない。
インタフェースであれば、複数実装することは可能。