-4
爲什麼我必須在一個內部類擴展Thread
代替實施Runnable
下面的代碼工作: -爲什麼我的`Runnable`有`start`方法?
class Outer{
Inner innerObj;
Outer(){
innerObj = new Inner();
}
public void begin(){
innerObj.start();
}
class Inner extends Thread{
Inner(){
System.out.println("Thread initialized!");
}
public void run(){
System.out.println("Thread running!");
}
}
}
class Driver{
public static void main(String[] args){
Outer o1 = new Outer();
o1.begin();
}
}
但是使用Runnable
導致編譯錯誤: -
class Outer{
Inner innerObj;
Outer(){
innerObj = new Inner();
}
public void begin(){
innerObj.start();
}
class Inner implements Runnable{
Inner(){
System.out.println("Thread initialized!");
}
public void run(){
System.out.println("Thread running!");
}
}
}
class Driver{
public static void main(String[] args){
Outer o1 = new Outer();
o1.begin();
}
}
了Runnable接口有沒有方法start()方法 – esaj 2012-01-30 17:13:22
我們都知道在這種情況下,錯誤,但通常,問技術問題101的部分是當你說什麼導致錯誤,**引用錯誤消息**。在這種情況下,它應該是公然明顯:'方法開始不是類Inner'或類似的發現。 – 2012-01-30 17:18:32