Java interface とは

今回はプログラミング言語Javaに関する、
interface (インタフェース) について書き溜めます。

インタフェースはオブジェクト指向の継承に関する概念なので
情報機科学初心者のマイルストーンとして残しておく。

概要

広告

インタフェース(interface) とは?

共通のメソッドの抽象化

まず、簡潔に言い表すと、
インタフェースとは、継承関係等にない無関係のクラスに共通メソッドを持たす手段 です。

各クラスは、インタフェースを実装し、抽象メソッドの本体を記述していきます。

インタフェースには下記の特徴を持ちます。

  • インタフェースのメソッドは形のみ定義し、本体は記述しない
  • コンストラクタを持たないため、インスタンスは作れない
  • フィールド変数は持てない
  • クラス変数(定数)は持てる
  • 各クラスは、カンマ(,)区切りで複数のインタフェースを実装できる
*各メソッドはabstractが省略されているため、interfaceを実装したクラスは
interface内の抽象メソッドを全てオーバライドする必要がある。

オーバライドについては過去記事「Java クラス オーバーライドとオーバーロード の違い」を参照されたい。

インタフェースを宣言する

interfaceを宣言する場合、classの部分にinterfaceと書く。

インタフェースを実装する

interfaceを実装するには、継承のextendsではなくimplementsを使用する。

interfaceを複数実装する場合、カンマ区切りで実装できる。
また、スーパークラスを継承しつつinterfaceを実装することも可能。
下記のようになる。

インタフェースにおけるアクセス修飾子

インタフェースにもアクセス修飾子の宣言が可能である。
アクセス修飾子については過去記事「アクセス修飾子のまとめ(private、protected、public)」を参照されたい。



基本的なところだが、
頭にいれておきたい。



じゃあね〜〜〜〜。