java中匿名內部類的特點是什麼

時間 2021-07-08 07:17:25

1樓:Unavailable

匿名內部類【重點】

匿名內部類 :是內部類的簡化寫法。它的本質是乙個帶具體實現的父類或者父介面的匿名的子類物件。

開發中,最常用到的內部類就是匿名內部類了。以介面舉例,當你使用乙個介面時,似乎得做如下幾步操作,

1. 定義子類

2. 重寫介面中的方法

3. 建立子類物件

4. 呼叫重寫後的方法

我們的目的,最終只是為了呼叫方法,那麼能不能簡化一下,把以上四步合成一步呢?匿名內部類就是做這樣的快

捷方式。

前提匿名內部類必須繼承乙個父類或者實現乙個父介面。

格式使用方式

public static void main(String args) {

// 建立外部類物件

Person p = new Person();

// 建立內部類物件

Heart heart = p.new Heart();

// 呼叫內部類方法

heart.jump();

// 呼叫外部類方法

p.setLive(false);

// 呼叫內部類方法

heart.jump();

輸出結果:

心臟在跳動

心臟不跳了

new 父類名或者介面名(){

// 方法重寫

@Override

public void method() {

2樓:路人

匿名內部類是一種特殊的區域性內部類,它是通過匿名類實現介面。

匿名內部類的特點:

1,乙個類用於繼承其他類或是實現介面,並不需要增加額外的方法,只是對繼承方法的事先或是覆蓋。

2,只是為了獲得乙個物件例項,不需要知道其實際型別。

3,類名沒有意義,也就是不需要使用到。

3樓:klein LL

這個類有乙個protected方法test,如果你在其他包下想呼叫這個protected方法是不行的,可以發現沒有提示test方法

這時候你可以使用匿名類繼承這個類,定義乙個方法callParentTest(),在這個方法體內呼叫super.test(),最後呼叫這個callParentTest()即可。

在spring-boot中的HttpMessageConverts裡也有用到這種方法

,但是定義為protected方法,所以使用匿名類來呼叫

Java 中引入內部類的意義?

自己平時在使用內部類一些總結 1,從職責劃分角度考慮 在某些場景更適合外部類和內部類之間的協作關係。內部類是作為輔助類,外部類看成主類,輔助類輔助主類。他們物件生存情景像宿主和寄生蟲的關係,輔助類能夠感知到主類存在,最典型的表現就是可以訪問到主類的this引用,有點像閉包。2,從多繼承角度考慮 內部...

為什麼Java內部類要設計成靜態和非靜態兩種?

王二 除了邏輯和可讀性上的需求之外。也實現了單例模式下對資源的優化。比如 Math 裡的 RandomNumberGeneratorHolder 就是靜態內部類。 BWH.Steven 我們所知道static是不能用來修飾類的,但是成員內部類可以看做外部類中的乙個成員,所以可以用static修飾,這...

JavaScript中如何移除匿名的事件處理函式?

dom的事件機制是訂閱 觀察,所以移除事件的時候需要提供事件名,也就是繫結的時候觸發的函式名。要是匿名函式的話,沒有名字,也就無法移除正常。但是有很多hack的方法,比如直接改寫element物件原型上的addEventListener,removeEventListner方法等等。乙個簡單粗暴的方...