匿名内部类:
-
没有类名的局部内部类
(一切特征都与局部内部类相同
定义在外部类方法中,作用范围和创建对象范围仅限于当前方法。
局部内部类访问外部当前方法中的局部变量时,因无法保障变量的生命周期与自身相同,变量必须修饰符为final。)。
-
必须继承一个父类或者实现一个接口
-
定义类 实现类 创建对象的语法合并,只能创建一个该类的对象。
-
优点:减少代码量。
-
缺点:可读性较差。
-
案例:
创建一个接口
public interface Usb { void series(); }
实现一个接口 重写了接口
public class Mouse implements Usb{ @Override public void series() { System.out.println("Usb设备连接成功!"); } }
main方法实现匿名类
public class TestUsb {
public static void main(String[] args) {
//创建接口变量
Usb u=new Mouse();
u.series();
//局部内部类
class Fan implements Usb {
@Override
public void series() {
System.out.println("连接成功,Fan开始工作");
}
}
Usb u1=new Fan();
u1.series();
//使用匿名内部类优化 相当于创建了一个局部内部类
Usb u=new Usb() {
@Override
public void series() {
System.out.println("连接成功,Fan开始工作");
}
};
u.series();
}
}