スポンサードリンク
HOME > Java > インターフェースについて

Java - インターフェースについて

インターフェースは、抽象メソッドと定数だけが定義されたクラスの事です。

抽象クラス・抽象メソッドと同じような使い方をします。

(定数はオマケと言った感じです。)

インターフェースを定義する時は、キーワードclassの変わりに

キーワードinterfaceを使います。

インターフェースには抽象メソッドが存在しますが、

メソッドの先頭にキーワードabstractを付ける必要はありません。

(もちろん、付けても問題ありません。)

同じく、インターフェースの先頭にabstractを付ける必要もありません。

それに加え、抽象メソッドを含むので、インターフェースのインスタンス化は不可です。

また、インターフェースの抽象メソッドの標準アクセス指定子は、publicです。


 定数も定義できます。

定数なので、static final属性が標準で付加されます。

(もちろん、付けても問題ありません。)

そして、変数ではなく定数なので、初期化が必要です。

また、インターフェースの定数の標準アクセス指定子は、publicです。


 インターフェース自体の標準のアクセス指定子は、指定なしです。

そのため、デフォルトでは、パッケージ内に限りアクセス可になります。

もちろん、通常のクラスのようにpublicを付ける事もできます。

インターフェース定義例

interface A {
   int data
= 10;     // 定数 初期化が必要。
   public void show();   // 抽象メソッド
}




インターフェースは、抽象クラス・抽象メソッドと同じく、継承して使います。

しかし、通常のクラスの継承時に使うextendsではなく、

implementsキーワードを使います。

implementsは実装する。と言った意味を持ちます。

 Javaではクラスの多重継承(2つの親を持つクラス)が許されていないので、

複数の抽象クラス・抽象メソッドを継承できません。

そういう場合のためにインターフェース機能があります。

インターフェースなら、いくつでも実装可能です。

例えば、1つのクラスと3つのインターフェースを継承、実装したクラスをつくれる。

と言った具合です。

もちろん、2つ以上のクラスを継承したクラスは作れません。

インターフェースの実装例

interface A {
   int data = 10;
   void show();
}

class B
implements A {
   int dataB;
   void show() {
      中身は省略
   }
}




スポンサードリンク







HOME

言語解説編
プログラミング用語・知識

C言語

C++言語

Java

C#

Visual Basic.NET

アプリケーション編
C言語による
コンソールプログラミング




Copyright (C) プログラミングランド All Rights Reserved