匿名內部類


一.匿名內部類適合創建那種只需要一次使用的類(命令模式)

     (1)定義匿名內部類的格式:

        new   實現接口( )    |父類構造器(實參列表)

        {   

                  //匿名內部類的實體部分

         }

    

      (2)匿名內部類的規則

           1.匿名內部類不能是抽象類,因為系統在創建匿名內部類時,會立即創建匿名內部類的對象.

            2.匿名內部類不能定義構造器.由於匿名內部類沒有類名,所以無法定義構造器.但匿名內部類可以定義初始化塊

       溫馨小提示:匿名內部類必須繼承一個父類或實現一個接口,但最多只能繼承一個父類或接口

二.匿名內部類的兩種形式

       方式一:隱式

溫馨小提示:(1)當通過實現接口來創建匿名內部類時,匿名內部類只有隱式的無參數構造器,故new后面不能傳入參數值(接口不包含構造器)1

                       (2)new Device("電子顯示器")   -->public void test(Device d)  -->Device d=new Device ();


 

方式二:顯示

   溫馨小提示:如果局部變量被匿名內部類訪問,那么該局部變量相當於使用了final修飾,系統會默認加上final修飾符,此時若再修改age值,報錯

         interface A

        { 

             void test();

            }

public class Atest{

       public static void main(String[] args) {

            int   age=19;

             A a=new A(){

                public   void test(){

                       System.Out.Println(age);

    }

                     };

}

}     


免責聲明!

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



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