Java匿名內部類

2021-08-09 14:38:23 字數 1190 閱讀 7150

學完匿名內部類就懂的情書。

// 情書

// 在我的世界你永遠18歲

me.world(new you()

});

匿名內部類也就是沒有名字的內部類,正因為沒有名字,所以匿名內部類只能使用一次,它通常用來簡化**編寫,但使用匿名內部類還有個前提條件:必須繼承乙個父類或實現乙個介面。

為什麼需要存在有匿名內部類。

範例:觀察如下**

inte***ce message 

class messageimpl imlements message

}public

class

testdemo

public

static

void

fun(message msg)

}

輸出結果:

hello

world

!

正常的規律就是乙個介面或者是抽象類需要有子類,子類要覆寫所有的抽象方法。

可是如果說現在的messageimpl子類只使用唯一的一次,那麼還有必要將其單獨定義為乙個類嗎?所以這個時候,就可以採用匿名內部類的方式進行**的簡化。

範例:簡化後的**

inte***ce message 

public

class

testdemo

});}

public

static

void

fun(message msg)

}

輸出結果:

hello

world

!

下面這個**塊就被稱為匿名內部類。

}

使用匿名內部類的時候,有乙個前提:必須要基於介面或抽象類的應用。

但是需要強烈強調的是,如果匿名內部類定義在了方法裡面,方法的引數或者是變數要被匿名內部類所訪問,那麼必須加上final關鍵字(jdk 1.8之後此要求被改變了)。

匿名內部類是在抽象類和介面的基礎上發展的,匿名內部類的最大好處是幫助使用者減少了類的定義。

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...