匿名类是一种即时继承现有类的方法。
例如,下面有一个类 Computer:
class Computer {
public void start() {
System.out.println("Starting");
}
}
创建 Computer 对象时,我们可以即时更改 start 方法。
public static void main(String[] args) {
Computer c = new Computer() {
@Override public void start() {
System.out.println("Wooooo");
}
};
c.start();
}
// 输出 "Wooooo";
在构造函数调用之后,我们使用花括号,并且重写了 start 方法的实现。
提示:@Override注解用于使代码更容易理解,因为当方法被重写时,它更加明显。
修改只适用于当前对象,而不适用于类本身。
所以,如果我们创建这个类的另一个对象,那么 start 方法的实现就是在类中定义的那个。
class Computer {
public void start() {
System.out.println("Starting");
}
}
public static void main(String[] args) {
Computer c1 = new Computer() {
@Override public void start() {
System.out.println("Wooooo");
}
};
Computer c2 = new Computer();
c2.start();
}
//输出 "Starting"
网友评论