Java中匿名類的兩種實現方式(轉)

使用匿名內部類課使代碼更加簡潔、緊湊,模塊化程度更高。內部類可以訪問外部內的一切成員變量和方法,包括私有的,而實現接口或繼承類作不到。然而這個不是我說的重點,我說的很簡單,就是匿名內部類的兩種實現方式:第一種,繼承一個類,重寫其方法;第二種,實現一個接口(能夠是多個),實現其方法。下面經過代碼來講明:模塊化

public class TestAnonymousInterClass{   
    public static void main(String args[]){   
        TestAnonymousInterClass test=new TestAnonymousInterClass();   
        test.show();   
    }   
    //在這個方法中構造了一個匿名內部類   
    private void show(){   
        Out anonyInter=new Out(){// 獲取匿名內部類實例   
               
            void show(){//重寫父類的方法   
                System.out.println("this is Anonymous InterClass showing.");   
            }   
        };   
        anonyInter.show();// 調用其方法   
    }   
}    
  
// 這是一個已經存在的類,匿名內部類經過重寫其方法,將會得到另外的實現   
class Out{   
    void show(){   
        System.out.println("this is Out showing.");   
    }   
}

程序運行的輸出結果爲:this

this is Anonymous InterClass showing.spa

因此在這裏看出,匿名內部類有了本身的實現。其實很簡單,使用匿名內部類是由於我這地方須要有點什麼特殊的實現,因此我就在這地方把具體實現也給了出來了。而後我就在這地方獲取它的實例,調用它的方法。code

接口的方式,只要把父類換成接口就好了,不必給出代碼了。blog

使用匿名內部類時咱們不要忘了咱們的目的,咱們只是在這地方想對某個類有特殊的實現。而不要想得太多,在匿名內部編寫其它的方法。在匿名內部類中編寫的本身的方法是不可見的。此種作法是毫無心義的,固然通常也不會這麼作。在這裏只是告訴初學者對於匿名內部類不要想的太多,而要這麼想:匿名內部類就是重寫父類或接口的方法。繼承

匿名內部類是沒有名字的,因此咱們沒辦法得到其類型,而只能把它看成超類或接口類型來使用。接口

相關文章
相關標籤/搜索