匿名内部类
匿名内部类也就是没有名字的内部类,也没有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