#navi(開発メモ/Java/基礎);
*インターフェイス [#e7e181ef]
インターフェイスはクラスの形式を定義する定数と、メソッドの宣言の集まり。~
''インターフェイスの書き方''
#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|変数を宣言し、定数を入れます。&br;修飾子を指定することも可能(省略可能)&br;指定しないときは public static finalとして扱われる|
|mthName|組み込むメソッドを宣言します。&br;修飾子を指定することも可能(省略可能)&br;指定しないときは public abstractとして扱われる&br;戻り値はrtypeで、引数はparamです。paramは省略可能|
クラスは1つまたは複数のインターフェイスを実装できます。
''インターフェイスの宣言書式''
#codeprettify{{
clsModfiers class clsName extends superName implements intfList{
}
}}
|clsModifiers|クラス修飾子。省略可能です。|
|clsName|クラス名です。|
|extends superName|クラスを継承(拡張)するときのみにつけます。|
|implements infList|実装するインターフェイスを定義します。&br;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());
}
}
}}