2012-09-27 123 views
0

我不記得這個概念的名稱。概念名稱需要

public interface MainInterface { 
     public void method1(); 
     public void method2(); 
} 

    void testMethod() { 
     methodMain(new MainInterface() { 

      @Override 
      public void method1() { 
       System.out.println("This is method1"); 
      } 

      @Override 
      public void method2() { 
       System.out.println("This is method2"); 
      } 
     }); 
    } 

    void methodMain(MainInterface mi) { 
     mi.method1(); 
     mi.method2(); 
    } 
  • 我創建MainInterface的實例,而不給予對象
  • 的名字,我實現接口方法
  • 然後用未知的名字methodMain通過實例。

這個概念是什麼,它的工作原理是什麼?

+0

匿名內部類? – Jivings

+0

爲了指出「匿名內部類」的概念,你應該改變你的示例代碼來創建一個匿名的「Comparator」或「Runnable」,並將它用於排序或異步執行。指出接口定義及其用法涉及其他(更高級的)概念,並使問題有點含糊。 –

回答

3

您已創建Anonymous Inner Class(即沒有名稱的類)的實例。

+0

準確。它的工作原理是因爲編譯器會分析它並將你的匿名代碼移動到一個自動命名的類成員上。 –

0

該概念被稱爲callback。在java中,你只有回調接口,在其他語言中你可以有回調函數。

作爲一種設計模式,這個概念涉及到戰略模式(如已經提到的阿米特)。

0

匿名類是您搜索的內容。