android里大量用到了接口回调,这里是牵涉到匿名内部类的问题
语法:
new 父类构造器(实参)|实现接口(){
}
要点:
1,必须实现一个(也只能是一个)接口或者继承一个(只能是一个)父类
2,匿名内部类不可以是抽象类 3,匿名内部类不可以有构造器
创建匿名内部类的方式有点奇怪,会立即创建这个类的实例,然后这个类消失,不能重复使用
当通过接口来实现匿名内部类的时候,匿名内部类不能显式的创建构造函数,只有一个隐式的匿名构造函数,故new后面不能传值 当通过继承父类来创建匿名内部类的时候,匿名内部类将拥有和父类相似的构造函数,此处的相似指的是拥有相同的形参列表
如果匿名内部类需要访问外部类的局部变量,则要用final修饰符来修饰外部类的局部变量
interface A{
void test();
}
public class ATest{
public static void main(String []args){
int age=10;
A a=new A(){
void test(){
//此处将错误,匿名内部类访问外部类的局部变量要用final修饰符
System.out.println(age);
}
}
}
}