Java匿名內部類

2021-09-22 05:50:36 字數 2009 閱讀 6080

概念:

匿名內部類也就是沒有名字的內部類

正因為沒有名字,所以匿名內部類只能使用一次,它通常用來簡化**編寫

但使用匿名內部類還有個前提條件:必須繼承乙個父類或實現乙個介面

注意事項:

&編譯後的檔案命名:外部類$數字

. class &

無法使用

public

、private

、abstract

、static

修飾,匿名內部類不能出現抽象方法 &

無法編寫構造方法,但可以新增構造**塊 &

不能出現靜態成員 &

匿名內部類可實現介面也可以繼承類,但是不可兼得 &

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

匿名內部類初始化:

我們一般都是利用構造器來完成某個例項的初始化工作的,但是匿名內部類是沒有構造

器的,那怎麼來初始化匿名內部類呢?使用構造**塊!利用構造**塊能夠達到為匿名內

部類建立乙個構造器的效果。

例項:

例項:

繼承式的匿名內部類:

引用變數不是引用

car

物件,而是

car

匿名子類的物件。

建立匿名內部類的關鍵點是重寫父類的乙個或多個方法。再強調一下,是重寫父類的方

法,而不是建立新的方法。因為用父類的引用不可能呼叫父類本身沒有的方法,建立新的方

法是多餘的。

介面式的匿名內部類:

上面的**很怪,好像是在例項化乙個介面。事實並非如此,介面式的匿名內部類是實

現了乙個介面的匿名類。而且只能實現乙個介面。

引數式的匿名內部類

由上面的三個例子可以看出,只要乙個類是抽象的或是乙個藉口,那麼其子類中的方法

都可以使用匿名內部類來實現。最常用的情況就是在多執行緒的實現上,因為要實現多執行緒必

須繼承thread

類或是實現

runnable 介面

thread類的匿名內部類實現:

runnable介面的匿名內部類實現:

JAVA匿名內部類

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

Java 匿名內部類

內部類定義在區域性時,1,不可以被成員修飾符修飾 2,可以直接訪問外部類中的成員,因為還持有外部類中的引用。但是不可以訪問它所在的區域性中的變數。只能訪問被final修飾的區域性變數。非靜態,沒物件,不執行 class outer new inner function class innerclas...

java匿名內部類

匿名內部類 匿名內部類 1 匿名內部類即沒有名字的內部類 2 正因為沒有名字,所以匿名內部類只能使用一次,它通常用來簡化 編寫 3 但使用匿名內部類還有個前提條件 必須繼承乙個父類或實現乙個介面 示例1 不使用匿名內部類來實現抽象方法 abstract class people class chil...