2014-01-15 2 views
-1

Java 및 Thread를 연구 중이며 상속에 대한 질문이 있습니다.Java 상속 및 확장 스레드

예를 들어 SuperThread이라는 상위 클래스가 있고이 스레드는 LocalThreadNetThread입니다.

NetThreadSuperThread의 생성자를 사용하고 싶습니다. 예를 들어

:

public class SuperThread{ 
    Private String name; 
    Private int size; 

    SuperThread(String name, int size){ 
     this.name = name; 
     this.size = size; 
    }  
} 

public class LocalThread extends Thread{ 
    String path = ""; 
    LocalThread(String name, int size, String path){ 
    Super(name, size); 
    this.path = path; 
} 

public class NetThread extents Thread{  
    //Share common constructor from parent class, but it was own part 
    } 
} 

그러나, 나는 스레드를 사용하기 위해 Thread을 확장해야한다는 것을 알고있다.

부모 클래스에서 생성자를 상속하는 동안 스레드를 확장 할 수있는 방법이 있습니까?

+0

정확한 이유와 다른 이유로 '스레드'를 확장해서는 안됩니다. Java에는 다중 상속이 없습니다. –

+0

하위 클래스의 인스턴스를 상위 유형의 인스턴스 인 것처럼 참조해야 할 때 상속 만 필요합니다. 다른 말로하면'SuperThread' 타입의 매개 변수를 받아들이는 어떤 메소드를 가지고 있지 않고'LocalThread'와'NetThread' 인스턴스를 그 메소드에 전달하려고한다면 상속이 필요 없습니다. – erickson

답변

4

Runnable 인터페이스를 사용하고 LocalThread 클래스에서 run 메서드를 재정의하십시오.

public class LocalThread extends SuperThread implements Runnable{ 
    String path = ""; 
    LocalThread(String name , int size, String path){ 
     super(name, size); 
     this.path = path; 
    } 

    @Override 
    public void run() { 
     //some actual job here 
    } 
}