我有一段代码片段
public class ThreadStates {
private static Thread t1 = new Thread("T1") {
public void run() {
try {
sleep(2);
for (int i = 100; i > 0; i--) ;
} catch (InterruptedException ie) {
ie.printStackTrace();
}
}
}
}
.......其余代码如下。
什么类型的declation是第1步。我可以看到我们在ThreadStates类中没有继承的Thread类,那么为什么run()方法声明即将到来。请澄清正在发生的事情。
答案 0 :(得分:3)
您创建了一个继承自Thread
的匿名内部类(请注意{
后面的new Thread()
。您将为此类提供一个run方法,并将其存储在t1中。< / p>
答案 1 :(得分:3)
它被称为匿名内部类。当你说'new Thread(“T1”){...}'时,你正在有效地定义一个新的Thread子类。
Is this a variation of an anonymous inner class? http://docs.oracle.com/javase/tutorial/java/javaOO/innerclasses.html
答案 2 :(得分:0)
当您调用直接实现Runnable
类的类时,您会立即继承该类所执行的所有方法。 Thread
是实现Runnable
的类之一,它使您实现了一个抽象的run()
方法。
这就是为什么它会在那里显示run()
nethod。