Java匿名內部類學習

2021-07-29 12:28:28 字數 1279 閱讀 6090

匿名內部類基本知識與用法

匿名內部類,是乙個沒有類名的類,通常用在當乙個繼承父類或者實現介面的類只需要用一次的時候,用來簡化**編寫。總結一下匿名內部類有幾個基本點:

*繼承父類或者實現介面或者實現抽象類

*匿名內部類用new來生成乙個繼承父類的物件的引用,因此可以用來作為參引數傳遞

*匿名內部類只能使用一次

利用**來測試繼承父類、實現介面、實現抽象類的用法

abstract class afather 

class father

}inte***ce ifather

class child extends father

}public

class test

};f.eat();

//實現抽象類的匿名內部類

afather af = new afather()

};af.eat();

//實現介面的匿名內部類

ifather ifa = new ifather()

};ifa.eat();

}}

執行結果:

eat child

eat nonameinnerclass

eat afather

eat inte***ce

abstract class afathers 

class others

}public

class test2 });

}}

一些注意事項

在使用匿名內部類的過程中,我們需要注意如下幾點:

1、使用匿名內部類時,我們必須是繼承乙個類或者實現乙個介面,但是兩者不可兼得,同時也只能繼承乙個類或者實現乙個介面。

2、匿名內部類中是不能定義建構函式的。

3、匿名內部類中不能存在任何的靜態成員變數和靜態方法。

4、匿名內部類為區域性內部類,所以區域性內部類的所有限制同樣對匿名內部類生效。

5、匿名內部類不能是抽象的,它必須要實現繼承的類或者實現的介面的所有抽象方法。

2.內部類使用引數必須是final型別

原因:內部類並不是直接使用的外部的引數,而是編譯時有自己單獨的.class檔案,也就是說它是拷貝了乙份引數,為了避免引數改變,造成資料不一致,要求資料必須是final型別

參考:[

3.匿名內部類初始化

匿名內部類沒有構造器,一般使用靜態**塊來完成初始化操作。

java 匿名內部類學習

宣告 如下內容截止執行結果是畢向東老師的課堂筆記 匿名內部類。就是內部類的簡寫格式。必須有前提 內部類必須繼承或者實現乙個外部類或者介面。匿名內部類 其實就是乙個匿名子類物件。格式 new 父類or介面 abstract class demo class outer public void meth...

JAVA學習筆記10 內部類 匿名內部類

內部類 內部類可以直接訪問外部類成員 包括私有成員 外部類要訪問內部類中的成員必須要建立內部類的物件 class outer public void method 內部類一般用於類的設計 分析事物時 發現該事物描述中還有事物 而且這個事物還在訪問被描述事物的內容 這時就可以將還有的事物用內部類來描述...

JAVA匿名內部類

abstract class base public abstract void f public class anonymousconstructor public void f public static void main string args 在此例中,不要求變數i 一定是final 的。...