匿名内部类(Ananymous),是一个没有名称的局部内部类,适合只使用一次的类。
在开发中经常有这样的类,只定义一次,使用一次就可以丢弃了。此时:不应该白白定义在一个文件中,在JavaSE/Android的事件处理中:不同的按钮点击之后,应该有不同的响应操作。首选使用匿名内部类。
特点:
- 匿名内部类本身没有构造器,但是会调用父类构造器
- 匿名内部类尽管没有构造器,但是可以在匿名类中提供一段实例初始化代码,JVM在调用父类构造器后,会执行该段代码
- 内部类处理可以继承类之外,还可以实现接口
实现接口的格式
new 父类构造器([实参列表]){
}
//注意,这里不叫new接口,语法如此
new 接口([实参列表]){
}
示例代码
interface IUSB{
void swipData();
}
class Mouse implements IUSB{
public void swipData(){
System.out.println("鼠标在移动");
}
}
class KeyBoard implements IUSB{
public void swipData(){
System.out.println("键盘在打字");
}
}
class MotherBorad{
public static void pluginIn(IUSB usb){
usb.swipData();//体现出了接口的多态
}
}
public class InterfaceUSB {
public static void main(String[] args){
MotherBorad.pluginIn(new KeyBoard());
MotherBorad.pluginIn(new Mouse());
MotherBorad.pluginIn(new IUSB(){
public void swipData(){
System.out.println("打印机嘟嘟嘟...");
}
});
}
}
注意:匿名内部类必须继承或实现一个接口,但最多只能继承一个父类或实现一个接口。