匿名类是一种动态扩展现有类的方法。
例如,考虑拥有一个类机器:
class Machine {
public void start() {
System.out.println("Starting...");
}
}
创建Machine对象时,我们可以动态更改start方法。
public static void main(String[ ] args) {
Machine m = new Machine() {
@Override public void start() {
System.out.println("Wooooo");
}
};
m.start();
}
//输出 "Wooooo";
在构造函数调用之后,我们打开了花括号并动态重写了start方法的实现。
@Override注释用于使您的代码更易于理解,因为它使重写方法时更加明显。