public class Demo {
public static void main(String[] args) {
Thread t = new Thread() {
public void run() {
for (int i = 1; i <= 5; i++) {
System.out.print(i + " ");
}
}
};
t.start();
}
}
Q:上面的一段代码中,Thread类是匿名内部类吗?
A:是匿名内部类(其实还不准确)。Thread本身并不是抽象类或接口,但此处重写了run方法,只有子类可以重写父类方法,所以new出的并不是Thread类,而是Thread类的匿名子类,即匿名内部类。如果不重写run方法,那么new出的就是Thread类本身,就不存在匿名内部类了。(摘自java中的匿名内部类总结)