故名思意 就是没有名字的类
一般什么时候用它呢?
比如说实现接口
一个方法的参数是接口,怎么办?定义一个内部类实现它然后再创建该类的对象?
NO! NO! NO! 这样太麻烦
这个时候就该使用匿名内部类,格式如下:
new [父类|接口](){
//实现部分
}
举个栗子吧:
interface Human{
void yell();
}
class Main{
//需要接口的方法
public static void test(Human a){
a.yell();
}
public static void mian(String[] args){
//第一种方法
class Tom implements Human{
@Override
public void yell(){
System.out.println("Tom");
}
}
test(new Tom());
//第二种 匿名内部类
test(new Human(){
@Override
public void yell(){
System.out.println("Tom");
}
});
}
}
是不是觉得第二种写起来简单明了?
当然匿名内部类不可以使用访问修饰符,成员也不能有static成员