关于匿名内部类直接 new接口

时间:2021-11-10 20:38:44

在Android中经常会为Button添加点击事件, 其中一种方式是匿名内部类的方式

如:

    Button b = new Button(this);

    b.setOnClickListener(new OnClickListener(){

         public void onClick(View v){

            

        }

    });

   此处OnClickListener是一个接口, 为什么可以直接new呢? 而且setOnClickListener();    接收的参数是一个类啊

    原来是因为这是实质上是使用匿名接口来实现匿名内部类的, 匿名接口这样写是会自动生成一个 实现了该接口的匿名类

这样就解决了上面的疑问了