使用匿名內部類課使**更加簡潔、緊湊,模組化程度更高。內部類能夠訪問外部內的一切成員變數和方法,包括私有的,而實現介面或繼承類做不到。然而這個不是我說的重點,我說的很簡單,就是匿名內部類的兩種實現方式:第一種,繼承乙個類,重寫其方法;第二種,實現乙個介面(可以是多個),實現其方法。下面通過**來說明:
public class testanonymousinterclass
//在這個方法中構造了乙個匿名內部類
private void show()
};anonyinter.show();// 呼叫其方法
}} // 這是乙個已經存在的類,匿名內部類通過重寫其方法,將會獲得另外的實現
class out
}
程式執行的輸出結果為:
this is anonymous interclass showing.
所以在這裡看出,匿名內部類有了自己的實現。其實很簡單,使用匿名內部類是因為我這地方需要有點什麼特殊的實現,所以我就在這地方把具體實現也給了出來了。然後我就在這地方獲取它的例項,呼叫它的方法。
介面的方式,只要把父類換成介面就行了,沒必要給出**了。
使用匿名內部類時我們不要忘了我們的目的,我們只是在這地方想對某個類有特殊的實現。而不要想得太多,在匿名內部編寫其它的方法。在匿名內部類中編寫的自己的方法是不可見的。此種做法是毫無意義的,當然一般也不會這麼做。在這裡只是告訴初學者對於匿名內部類不要想的太多,而要這麼想:匿名內部類就是重寫父類或介面的方法。
匿名內部類是沒有名字的,所以我們沒辦法獲得其型別,而只能把它當作超類或介面型別來使用。
Java匿名內部類的兩種經典用法
匿名內部類是在單一表示式內定義的巢狀類。因為這些類沒有名稱和建構函式,所以稱為匿名類。它們只能訪問最終方法變數和引數。class inner class bank abstract class customer public inte ce accountable public class acco...
匿名內部類的兩種場景的寫法
使用匿名內部類的目的 因為介面和抽象類都不能例項化物件,使用匿名內部類的方式構造介面 例項化物件 只要是抽象的,不管是抽象類還是介面,都可以通過匿名內部類的方式訪問 情況一 介面 抽象類使用 相當於不用特意去寫乙個類去實現這個介面的方法,直接在例項化的時候就寫好這個方法 介面 抽象類不能例項化,所以...
java 中的匿名內部類
一 基本概況 匿名內部類 就是內部類的簡化寫法 前提 存在乙個介面或者是乙個類 這裡的類可以是抽象的也可以是具體的類 格式 new 類名或者介面名 匿名內部類的本質 是乙個匿名物件或者是實現了該介面的的子類的匿名物件,inte ce inter class outer public void sho...