-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