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


使用匿名內部類課使代碼更加簡潔、緊湊,模塊化程度更高。內部類能夠訪問外部內的一切成員變量和方法,包括私有的,而實現接口或繼承類做不到。然而這個不是我說的重點,我說的很簡單,就是匿名內部類的兩種實現方式:第一種,繼承一個類,重寫其方法;第二種,實現一個接口(可以是多個),實現其方法。下面通過代碼來說明:
  1. publicclass TestAnonymousInterClass{     
  2.     publicstatic main(String args[]){     
  3.         TestAnonymousInterClass test= TestAnonymousInterClass();     
  4.         test.show();     
  5.     //在這個方法中構造了一個匿名內部類   
  6.     private show(){     
  7.         Out anonyInter= Out(){// 獲取匿名內部類實例   
  8.              show(){//重寫父類的方法   
  9.                 System.out.println("this is Anonymous InterClass showing."
  10.         anonyInter.show();// 調用其方法   
  11. // 這是一個已經存在的類,匿名內部類通過重寫其方法,將會獲得另外的實現   
  12. class
  13.      show(){     
  14.         System.out.println("this is Out showing."
程序運行的輸出結果為:
this is Anonymous InterClass showing.
   所以在這里看出,匿名內部類有了自己的實現。其實很簡單,使用匿名內部類是因為我這地方需要有點什么特殊的實現,所以我就在這地方把具體實現也給了出來了。然后我就在這地方獲取它的實例,調用它的方法。
   接口的方式,只要把父類換成接口就行了,沒必要給出代碼了。
   使用匿名內部類時我們不要忘了我們的目的,我們只是在這地方想對某個類有特殊的實現。而不要想得太多,在匿名內部編寫其它的方法。在匿名內部類中編寫的自己的方法是不可見的。此種做法是毫無意義的,當然一般也不會這么做。在這里只是告訴初學者對於匿名內部類不要想的太多,而要這么想:匿名內部類就是重寫父類或接口的方法。
 匿名內部類是沒有名字的,所以我們沒辦法獲得其類型,而只能把它當作超類或接口類型來使用。
當然,我這篇文章不是很有深度。歡迎發表意見!
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM