匿名内部类:
内部类:在类的内部又定义了一个新的类,被称为内部类。
- 静态内部类:类似于静态变量
- 实例内部类:类似于实例变量
- 局部内部类:类似于局部变量
class example {
static class Inner1{
}//静态内部类
class Inner2{
}//实例内部类
public void do(){
class Inner3{
}//局部内部类
}
}
注:使用内部类编写的代码可读性太差。
匿名内部类是局部内部类的一种。
interface Compute{
int sum(int a,int b);
}
class ComputeImp implements Compute{
public int sum(int a, int b){
return a+b;
}
}
public void mymath(Computer c,int a,int b);
mymath(new ComputeImp(),100,100)
(接口一般需要类去实现,才能调用。)
mymath(new Compute(){
public int (int a,int b){
return a+b;
}
},100,100)//用匿名内部类去实现
匿名内部类的缺点:1.太乱,复杂。2.没有名字,只能用一次。
匿名内部类也是也是局部内部类的一种。