![[PukiWiki] [PukiWiki]](image/pukiwiki.png) 
 インターフェイスはクラスの形式を定義する定数と、メソッドの宣言の集まり。
インターフェイスの書き方
#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());
   }
} }}