interface Inter {
  public void m();
}
我在其它的类中main方法里写 new Inter() {public void m(){....}};
这样的写法该怎么理解呢?我知道这是匿名内部类,可是应该如何去理解它?
接口明确的说明了,不让new,这里又new了.不理解

解决方案 »

  1.   

    这里的new不是new了接口,而是接口的一个实现。具体内容就是你的匿名类的内容。
      

  2.   

    我在其它的类中main方法里写 new Inter() {public void m(){....}};楼主你的写法是有错误的,Inter是一个接口是不可以new的,你应该定义一个实现它的类然后new这个实现类,例如:
    public class A implements Inter {
      public void m() {  }
      public static void main(String[]args) {
        Inter inter = new A();
        inter.m();
      }
    }
      

  3.   

    new Inter() {public void m(){....}};
    这个相当于
    public class xxx implements
    {public void m(){....}}
    new xxx();
    只不过xxx类是没有名字的,所以被称为匿名内部类
    这里实例化的不是接口Inter,而是类xxx