インターフェイスはクラスの形式を定義する定数と、メソッドの宣言の集まり。
インターフェイスの書き方
#codeprettify{{ intfModeifier(省略可) interface intfName{ varModfier1 type1 varName1 = value1; varModfier2 type2 varName2 = value2; varModfier3 type3 varName3 = value3; ・ ・ ・ varModfierN typeN varNameN = valueN; mthModfier1 rtype1 mthName1(param1); mthModfier2 rtype2 mthName2(param2); mthModfier3 rtype3 mthName3(param3); ・ ・ ・ mthModfierN rtypeN mthNameN(paramN); } }}
intfModifier | インターフェイスのアクセス権を規定する修飾子。省略可能 |
intfName | インターフェースの名前の宣言 |
varName | 変数を宣言し、定数を入れます。 修飾子を指定することも可能(省略可能) 指定しないときは public static finalとして扱われる |
mthName | 組み込むメソッドを宣言します。 修飾子を指定することも可能(省略可能) 指定しないときは public abstractとして扱われる 戻り値はrtypeで、引数はparamです。paramは省略可能 |
クラスは1つまたは複数のインターフェイスを実装できます。
インターフェイスの宣言書式
#codeprettify{{ clsModfiers class clsName extends superName implements intfList{ } }}
clsModifiers | クラス修飾子。省略可能です。 |
clsName | クラス名です。 |
extends superName | クラスを継承(拡張)するときのみにつけます。 |
implements infList | 実装するインターフェイスを定義します。 infListのところにコンマ区切りでインターフェイスの名前を定義します。 |
インターフェイスは継承もできます。
extendsを使用しますが、インターフェースの場合、スーパーインターフェイスを複数宣言可能です。
#codeprettify{{ interface J{
int j = 200; int j1();
}
interface K{
double k1();
}
interface L extends J,K{
boolean l1();
}
class I implements L{
public int j1(){ return 4; }
public double k1(){ return 6.8; }
public boolean l1(){ return true; }
}
class interfaceInferitance{
public static void main(String args[]){ I i = new I(); System.out.println(i.j); System.out.println(i.j1()); System.out.println(i.k1()); System.out.println(i.l1()); }
} }}