有没有办法实例化匿名内部类?

时间:2015-09-07 05:54:34

标签: java inner-classes

有没有办法从main方法访问匿名类的方法? 如果是这样,访问这种方法的语法是什么?

3 个答案:

答案 0 :(得分: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();
   }
}

答案 1 :(得分:0)

匿名类 会在您需要的同时进行实例化。他们没有自己的名字。如果您使用Swing或applet进行编码,那么ActionListeners or EventHandlers实际上已经实例化了anonymoysly

答案 2 :(得分: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似乎是静态类型,不需要隐藏对父母的引用?似乎没有。