2011-02-02 26 views
2
class X 
{ 

    void method1(){} 

    void method2(){} 

} 
class Y 
{ 

    void someMethod() 
    { 

      /* 
       What is this type below called? 
       Anonymous class or 
       Anonymous-Inherited class or what??? 
      */ 
      X xInstance = new X(){ 

       @Override 
       void method1() 
       { 
        System.out.println("What kinda class is this ?"); 
       } 
      } 
    } 

} 

回答

4

这是一个匿名的内部(或嵌套)类。

参考:Local and Anonymous Inner Classes

+0

你是说它没有继承任何类X? 。我看到我可以访问超级(是否正确?)。与对象层次结构有关的实际发生了什么?它是如何工作的 ?它看起来像X类的匿名孩子。我说得对吗? – panzerschreck 2011-02-02 06:37:13

1
X xInstance = new X(){ 

       @Override 
       void method1() 
       { 
        System.out.println("What kinda class is this ?"); 
       } 
      } 
    } 

这是anonymous类。你已经覆盖了执行method1()