2015-09-07 119 views

回答

0

如果您有匿名類的至少一個實例(對象),起初似乎是:

class Demo { 
    void show() { 
     System.out.println("i am in show method of super class"); 
    } 
} 
public class Flavor1Demo { 

    // An anonymous class with Demo as base class 
    static Demo d2 = new Demo() { 
     void show() { 
      super.show(); 
      System.out.println("i am in Flavor1Demo class"); 
     } 
    }; 
    public static void main(String[] args){ 
     d2.show(); 
     try { 
     Demo v = d2.getClass().newInstance(); 
     System.out.println("Object created"+v.getClass().getTypeName()); // Canonical is null 
    } catch (InstantiationException | IllegalAccessException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    } 
} 

我驚訝,匿名CLS似乎是靜態類型,不需要對父級的隱藏引用?似乎沒有。

0
class Demo { 
    void show() { 
     System.out.println("i am in show method of super class"); 
    } 
} 
class Flavor1Demo { 

    // An anonymous class with Demo as base class 
    static Demo d = new Demo() { 
     void show() { 
      super.show(); 
      System.out.println("i am in Flavor1Demo class"); 
     } 
    }; 
    public static void main(String[] args){ 
     d.show(); 
    } 
} 
+0

我認爲,你不明白關於INSTANTIATE的問題 - 或者我錯了? –

+0

@JacekCz檢查這個鏈接請輸入:http://www.geeksforgeeks.org/inner-class-java/ – soorapadman

+0

這幾個重要的詞是這方面的:匿名類,內部類,靜態類,必須是精確的。你在主題中寫了不同的問題,在主體中不同 –

0

匿名類在你需要的時候同時被實例化。他們沒有他們的名字。如果你使用Swing或小程序編碼,然後有ActionListeners or EventHandlers是被實例化anonymoysly

相關問題