2011-11-19 79 views
0

我有一段代碼爲無法理解的聲明

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()方法聲明即將到來。請闡明發生了什麼。

回答

3

您已經創建了從0​​繼承匿名內部類(注意{直接跟隨new Thread()。你給這個類的run方法,並將其存儲在T1。

0

當你調用一個類,直接實現在Runnable類,你立即繼承說了這麼多類做的方法。Thread是實現Runnable類之一,它讓你實現run()方法,它是一個抽象的一個。

這就是爲什麼它顯示了run() nethod日ERE。