推薦答案
匿名內(nèi)部類是在 Java 中創(chuàng)建一個沒有具體類名的類的方式,通常用于創(chuàng)建實現(xiàn)某個接口或抽象類的臨時對象。它的語法形式如下:
1. 實現(xiàn)接口的匿名內(nèi)部類:
接口名 對象名 = new 接口名() {
// 匿名內(nèi)部類的具體實現(xiàn)
};
示例:
Runnable runnable = new Runnable() {
@Override
public void run() {
// 匿名內(nèi)部類的具體實現(xiàn)
}
};
2. 繼承抽象類的匿名內(nèi)部類:
抽象類名 對象名 = new 抽象類名() {
// 匿名內(nèi)部類的具體實現(xiàn)
};
示例:
AbstractClass abstractClass = new AbstractClass() {
@Override
public void method() {
// 匿名內(nèi)部類的具體實現(xiàn)
}
};
在匿名內(nèi)部類的大括號內(nèi),可以實現(xiàn)接口或抽象類中的抽象方法,并編寫具體的實現(xiàn)邏輯。通過這種方式,可以方便地在需要臨時對象的地方直接創(chuàng)建并使用匿名內(nèi)部類,而無需單獨定義一個具體的類。
其他答案
-
匿名內(nèi)部類可以看作是一種沒有名字的局部內(nèi)部類,它可以用來創(chuàng)建一個只需要使用一次的對象。以下是匿名內(nèi)部類的定義和寫法:定義:匿名內(nèi)部類定義的語法格式為:new 父類構(gòu)造器/接口() { // 匿名內(nèi)部類的類體 }。寫法:匿名內(nèi)部類的寫法,一般可以分為如下兩種:1.繼承式寫法:只需要實現(xiàn)父類的抽象方法即可。2.實現(xiàn)式寫法:需要實現(xiàn)一個接口,重寫其中的抽象方法。在這兩種寫法中,都是直接在new關(guān)鍵字后面定義一個匿名內(nèi)部類對象,并重寫其中的抽象方法或者接口方法,然后使用該對象來調(diào)用對應(yīng)的方法。在匿名內(nèi)部類中,也可以聲明成員變量和方法,以及使用外部類的成員變量和方法。
-
匿名內(nèi)部類是一種特殊的Java內(nèi)部類,可以在聲明并創(chuàng)建對象時直接定義實現(xiàn),而不需要定義一個命名的類。使用匿名內(nèi)部類可以更加簡潔地編寫代碼,適用于一些臨時的、只需要被使用一次的類的場景。匿名內(nèi)部類的語法為:new 父類名/接口名(){ // 匿名內(nèi)部類的實現(xiàn)代碼 }。其中,父類名或接口名是需要實現(xiàn)的類或接口,大括號內(nèi)的代碼是匿名內(nèi)部類的具體實現(xiàn)。因為匿名內(nèi)部類是沒有類名的,所以可以直接在new關(guān)鍵字后定義。匿名內(nèi)部類的定義和一般的Java類有所不同,因為它沒有類名。它的定義類似于一個方法體,但是實現(xiàn)的卻是一個類或接口的特定方法。匿名內(nèi)部類必須是從一個類或接口派生的子類或?qū)崿F(xiàn)的接口,這些派生類或?qū)崿F(xiàn)類只會在匿名內(nèi)部類中出現(xiàn)一次,因為匿名內(nèi)部類是臨時使用的,所以不需要被復(fù)用。在匿名內(nèi)部類中,可以訪問外部類的成員變量和方法,但需要注意的是,外部類的成員變量和方法必須是final修飾的,才能夠在匿名內(nèi)部類中被訪問。