在Java中,匿名内部类是一种没有名字的内部类。它通常用于需要在局部作用域内创建一个类的情况,例如,当需要一个类来实现某个接口或继承某个抽象类时。
匿名内部类的用法有如下几种:
1.实现接口:
new 接口名() {
// 实现接口中的方法
}
2.继承抽象类:
new 抽象类名() {
// 实现抽象类中的抽象方法
}
3.作为参数传递:
public void someMethod(SomeInterface anInterface) {
// 使用匿名内部类实现接口
anInterface.doSomething();
}
// 调用 someMethod 方法
someMethod(new SomeInterface() {
public void doSomething() {
// 实现接口中的方法
}
});
匿名内部类的使用可以简化代码,并且不需要为类取名字。但是,它也有一些限制,例如不能有构造方法和静态成员变量,不能访问外部类的非final变量等。