Java匿名内部类

匿名内部类

匿名内部类也就是没有名字的内部类,也没有class关键字。因为没有名字,所以匿名内部类只能使用一次。匿名内部类还必须继承一个父类或实现一个接口。当然也仅能只继承一个父类或者实现一个接口。

格式

new 父类构造器(参数列表)|实现接口()  
    {  
     //匿名内部类的类体部分  
    }

示例

Button button=(Button)findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(MainActivity.this,"you clicked button",Toast.LENGTH_SHORT).show();
            }
});    

示例2

abstract class Father(){
....
}
public class Test{
   Father f1 = new Father(){ .... }  //这里就是有个匿名内部类
}

拆分上面的匿名内部类可为:

class SonOne extends Father{
  ...       //这里的代码和上面匿名内部类,大括号中的代码是一样的
}
public class Test{
   Father f1 = new SonOne() ;
}

参考

https://blog.csdn.net/guyuealian/article/details/51981163
https://www.cnblogs.com/chenssy/p/3390871.html

原文地址:https://www.cnblogs.com/uestcman/p/9873996.html