接口不能new 可以生成一个匿名类

解决方案 »

  1.   

    接口不能new。
    new ActionListener(){} 这种形式,是要在{}中重写接口中的方法。 楼主可看下java基础书内部类相关章节。
      

  2.   

    1 接口不能new
    2 new ActionListener(){} 这种形式是匿名类的形式,省略了写一个具体类实现ActionListener接口的开销
      

  3.   

    楼主你可以这么理解,new ActionListener(){} 相当于动态的实现了接口,在内存中建立了一个ActionListener对象,区别就是这个对象的实现类就直接在另一个代码中定义了,而不是独立的文件。
    我们一般称这种类为匿名类,当然,匿名类不止实现接口这一种。比如 一个接口 A ,里面有一个方法fun1(),一般我们是先定义它的实现再引用它,比如public class ImpA implements A{
     public void fun1(){
        //do some thing...
     }
    }然后在另一个类调用public class Class1 {
     public void method1(){
        A a = new ImpA();
     }
    }但有时我想对这个接口做另一个实现不想使用ImpA,但由于是临时的又不想去做定义,则你就可以这样
    public class Class1 {
     public void method1(){
        A a = new A(){ //相当于在内存中直接产生了一个接口的实现并引用这个内存对象。动态的代码
           public void fun1(){
             //do some thing...
           }
        };
     }
    }匿名类的其它作用你可以百度或谷歌一下,这里就不赘述了。
      

  4.   

    接口是特殊的抽象类,不能被实例化,所以不能new
      

  5.   

    接口对象引用 只能通过new 他的实现类 来赋值
      

  6.   


    这个解释的灰常详细……接口对象引用 只能通过new 他的实现类 来赋值
      

  7.   

    接口不能New  楼主的写法是生成了实现该接口的匿名对象
      

  8.   

    接口不可以new,但可以使用new产生一个实现接口的匿名类。
      

  9.   

    首先要搞清楚接口是用来干嘛的,接口就是一个标准;
    这个标准里面有一些方法,没有方法体,要覆写;
    既然没有方法体,当然不能被new啦;
    Java不能同时继承多个类,但是可以继承多个接口;
    接口可以用来变相的继承多个类;
      

  10.   

    首先接口是不可以new的,其次楼主这种用法仅限于匿名类中实现接口中的方法
      

  11.   

    按照书本来说,接口是不可以被new的,但你要new一个对象也可以。就像下面的代码:
    Runnable= new Runnable() {
    public void run() { }
    });
    其实,new一个对象的时候,相当于new了一个实现该接口的类。
      

  12.   

    实现匿名类。最简单的线程类,可以这么写。
    Thread thread = new Thread(new Runnable() {
    @Override
    public void run() {
    // TODO Auto-generated method stub

    }
    });
      

  13.   

    不可以哦。。 你看哦。。 接口的方法都默认为  public  abstract  的 
      抽象的方法不能别new的哦。
      

  14.   

    接口不能直接new,但是它可以作为别的类的变量。如果有类实现了这个接口,则可以new! 举一个简单的例子:java.lang.List是一个接口,但是List<String> list=new ArrayList<String>();是没有任何错误的,因为ArrayList实现了List接口。接口编程是为了实现多继承,在java web中的spring框架下用到十分多。
      

  15.   

      接口和抽象类都不能直接实例化
      只能通过实现或继承它的类来实例化  接口只是定义了一个标准,很多类可以实现这个接口 
    eg:
    List接口:
    List list = new ArrayList();//实例化的是ArrayList这个类
    List list = new Vector();//实例化的是Vector这个类 
    其中ArrayList和Vector这两个类都实现了List接口
      

  16.   

    接口和抽象类可以看成“不完整”的类,不能new的
      

  17.   

    不可以new一个借口,但是可以跟new这个关键字,只是不要实例化,例如List源码有这句: <T> T[] toArray(T[] a);你就可以new一个接口数组进去。
      

  18.   

    不能new的,LZ,这是内部类的实现(匿名),
      

  19.   

    接口不能被new,但是可以new实现他的类,接口的设计本身也是用于易于扩展的实现的
      

  20.   

    接口和抽象类都不能实例化。但可以用多态:Test s = new Tests();Test 是接口.
    Tests 是一个POJO类然后可以用s.去调东西.
      

  21.   

    受叫了,我也刚学Java,要加油多实践了,匿名类什么的
      

  22.   

    java接口在匿名内部类中是可以的 new 的
      

  23.   

    知道结构不?那个和类差不多的玩意。接口是一个final所以不可能new出来 它本身的实例  但是可以new出它下面的实现的方法
      

  24.   

    接口是最纯粹的抽象类,不能new 楼主所说的是匿名内部类,在写线程的时候,遇到过,new Thread(new Runnable(){
    @Override
    public void run(){
    //do sth.....
    }
    })
      

  25.   

    接口不可以new,但可以使用new产生一个实现接口的匿名类。
      

  26.   

    接口不能new,你那个是用匿名类实现了接口在new的
      

  27.   

    arraylist是是实现类。接口不可以直接实例化。