考慮此程序:Java線程疑問
public class test {
public static void main(String [] args){
Runnable r = new Runnable() {
public void run() {
System.out.print("foo");
}
};
Thread t = new Thread(r) {
public void run() {
System.out.print("bar");
}
};
t.start();
}
}
在運行輸出
bar
我想知道爲什麼會這樣。
我的理解:
我們實例實現通過重寫run方法的Runnable的匿名內部類。並將其分配給r。
接下來我們將這個runnable傳遞給Thread類的構造函數。但是我們也創建了一個新的匿名內部類,通過覆蓋運行來擴展Thread。
所以我們現在有兩種運行方法,第二種將優先於第一種。
我很困惑,請糾正我,如果我錯了。
也是在現實世界的Java編程中使用這種瘋狂的東西? (我的教授說是,那是什麼讓我們繼續前進:D)。