java匿名內部類

匿名內部類必須繼承一個父類或者實現一個接口。匿名內部類不能是抽象類,因爲系統在創建匿名內部類時,會立即創建匿名內部類的對象,因此不允許匿名內部類爲抽象類。

匿名內部類不能定義構造器,由於匿名內部類沒有類名,所以無法定義構造器,但匿名構造類可以初始化塊,可以通過實例初始化塊來完成構造函數需要完成的部分。

語法格式:

new 實現接口()|父類構造器(實參列表){匿名內部類的類體部分}

interface MyInter{

public String getName();

}

public class AnonymousTest{

public void test(MyInter i){

System.out.println("The Content of this function is" + i.getName());

}

}

public static void main(String[] args){

AnonymousTest ta;

ta.test(new MyInter(){

public String getName(){

return "Anonymous Content";

}

});

}

}

簡言之,匿名內部類的實現方式:第一種,繼承一個抽象類重寫其方法;第二種,實現一個接口並實現其方法。

使用匿名內部類的兩種情況:

實現的抽象方法需要特殊實現;需要抽象類或接口對象。

在匿名內部類編寫自己的其他方法不現實,匿名內部類只會被調用一次。

當接口的實例對象需要被重複使用時,可以將接口的實現類定義成一個獨立的類;如果這個類只需要一次性使用,則可以定義成匿名內部類。

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