接口名 a=new 接口名();//不可以这样写s是什么  //s在哪儿呢?

解决方案 »

  1.   

    只能这样:
    接口名 a = new 子类名();
    也可以以匿名类的方式:
    接口名 a = new 接口名A() {
       接口里的方法实现.
    }
      

  2.   

    试试  whyxx(最近比较烦)  的
      

  3.   

    static ActionListener a1=new ActionListener(){}
    上面是我从一个程序中抄下来的完整的一句话,我还是想问a1是什么?听楼上的前辈的意思是好像是说是匿名类的方式,不懂?接口名A()是什么意思? 
      

  4.   

    static ActionListener a1=new ActionListener()可以这样理解:
      建立一个变量 a1 ,这个变量是 ActionListener 类型的,并且是 static 的状态。产生的结果:
      在这句话所在的类(就是你自己定义的)中,新建一个名为 a1 的变量,它属于 ActionListener 类型,包含 ActionListener 所有的变量和方法(一般情况下)。由于它是 static ,你可以直接访问这个 a1 (要求在同一个包内)。使用方法是:
      类名(就是你自己定义的).al;楼主说的:接口名 a=new 接口名();
    应该是指:  类名 a=new 类名(); 吧。
      

  5.   

    你说的是匿名类,是这样:
                          interface example
                            {
                                  public void move();
                            }
                      class main{
                           
                          example a=new example(){
                                    x++;
                            }
                        }
              new example 产生了一个 example 的匿名子类,并一同实现了他,类型并转向了他!
      

  6.   

    还是不太懂,new后应该是类名,怎么可以是接口名呢(上例中example就是一个接口),a是一个变量,它的值是不是就是new example产生的方法。
      

  7.   

    上面打错了,是new example产生的类。