Почему я должен расширять Thread
во внутреннем классе вместо реализации Runnable
Следующий код работает: -
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();
}
}