【Java】インタフェース


Javaについて、復習しながら更新していきます。
今回のテーマはインタフェース!!

インタフェース

抽象クラスに似ているが、より実体を持たせないインタフェースとして定義し、クラス間の仕様を規格化することを目的として作成する。主に、定数と抽象メソッドを定義するが、実装も持てるようになっている。


[構文]

[修飾子] interface インタフェース名
{
//処理
}



[決まり]
・interfaceを指定して宣言を行う
・インスタンス化はできないため、必ず、implementsを指定して実装クラスを用意し、インタフェースで定義した抽象メソッドをオーバーライドして使用する。
・interfaceで定義できるメンバ変数は定数のみ。変数を定義すると暗黙で「public static final」の定数となる。



実装クラス

インタフェースのインスタンス化はできないため、必ずimplementsを指定して実装クラスを用意する。



[構文]

[修飾子] class クラス名 implements インタフェース名,,,
{
//処理
}



[決まり]
・implementsを指定して宣言を行う
・複数のインタフェースを指定して実装することができる
・インタフェースで定義した抽象メソッドは必ずオーバライドして実装する(複数のインタフェースをもとにしてもすべての抽象メソッドを実装)



[例]
///インタフェース定義
interface interfaceTest
{
	//定数
	public static final int i = 1;
	//修飾子をつけなくても暗黙的に定数となる
	int i2 = 2;
	
	//抽象メソッド
	public abstract void testMeshod();
	//省略しても抽象メソッドとなる
	String testMeshod2(String str);
}
///インタフェース定義
interface interfaceTest2 
{
	//抽象メソッド
	public abstract int testMeshod3(int num);
}
///インタフェースの実装
class impTest implements interfaceTest, interfaceTest2 
{
	//抽象メソッドはすべて実装
	public void testMeshod()
	{
		 System.out.println("testMeshod()");
	}
	//抽象メソッドはすべて実装
	public String testMeshod2(String str)
	{
		return str + ":testMeshod2(String str)";
	}
	//抽象メソッドはすべて実装
	public int testMeshod3(int num)
	{
		return num + 1;
	}
}



以上。



【ブログを始めるなら】

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA