匿名内部类
- 没有类名的局部内部类(一切特征都与局部内部类相同)。
- 必须继承一个父类或者实现一个接口。
public interface Usb{
//服务
void service();
}
public class Mouse implements Usb{
@Override
public void service(){
System.out.println("连接电脑成功,鼠标开始工作了...");
}
}
public class TestUsb{
public static void main(String[] args){
//创建接口类型的变量
Usb usb = new Mouse();
usb.service();
//局部内部类
class Fan implements Usb{
@Override
public void service(){
System.out.println("连接电脑成功,风扇开始工作了。。。");
}
}
//使用局部内部类创建对象
Usb usb1 = new Fan();
usb1.service();
//使用匿名内部类优化(相当于创建了一个局部内部类)
Usb usb2 = new Usb(){
@Override
public void service(){
System.out.println("连接电脑成功,风扇开始工作了。。。");
}
}
}
}
- 定义类、实现类、创建对象的语法合并,只能创建一个该类的对象。
- 优点:减少代码量。
- 缺点:可读性较差。