匿名內部類

匿名內部類是一種只需要使用一次的類,創建匿名內部類時會立即創建一個該類的實例,這個類的定義立即消失,匿名內部類不能重複使用。

匿名內部類的語法格式如下:

new 實現接口()| 父類構造器(實參列表)

{

......

}

匿名內部類必須實現一個接口,或繼承一個父類。

匿名內部類不用Class,他在定義時直接生成了他的對象,因爲匿名內部類沒有類名,所以匿名內部類不會有自己的構造器,因爲匿名內部類是一次性的,所以匿名內部類也不能是抽象類,他必須實現抽象父類和接口的所有抽象方法,在適當的時候也可以重寫父類的普通方法。eg:

abstract class AbstractClass//抽象類
{
	public AbstractClass()
	{
	}

	public abstract String a();
}
interface Interface//接口
{
	public String a();
}
public class anonymous{
	public void test(AbstractClass a, Interface i)
	{
		System.out.println(a.a());
		System.out.println(i.a());
	}
	
	public static void main(String[] args)
	{
		AbstractClass a = new AbstractClass()//要將抽象方法都重寫完,不然將出現編譯錯誤
		{
			{//初始化快直接顯示
				System.out.println("匿名內部類的初始化塊");
			}

			public String a()
			{
				return "重寫父類的抽象方法";
			}
		};
		anonymous am = new anonymous();
		am.test(a, new Interface()
		{
			public String a()
			{
				return "接口的抽象方法";
			}
		});
	}
}
顯示結果爲:

匿名內部類的初始化塊

重寫父類的抽象方法

接口的抽象方法

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章