匿名内部类,指的是实例化内部对象 ,就是没有名字的内部类;
作用:假如某个类只使用一次,则可以使用匿名内部类;
先定义一个接口A;
package m12d27;
public interface A {
public void say();
}
定义一个类B;
package m12d27;
public class B implements A{
public void say(){
System.out.println("B类中的a方法");
}
}
测试类;
package m12d27;
public class test1 {
public void fun(A a){
a.say();
}
public static void main(String[] args) {
test1 t=new test1();
//传入参数,传进去的是A接口的一个实现类B
t.fun(new B());
}
}
输出结果:
B类中的a方法
这个地方如果仅仅调用一次一个fun,并且没有A接口的具体实现类,这时候,匿名内部类就派上用场了;
package m12d27;
public class test1 {
public void fun(A a){
a.say();
}
public static void main(String[] args) {
test1 t=new test1();
//传入参数,传进去的是A接口的一个实现类B
t.fun(new B());
t.fun(new A(){
@Override
public void say() {
// TODO Auto-generated method stub
System.out.println("匿名内部类,一次使用");
}
});
}
}
B类中的a方法
匿名内部类,一次使用