2014-01-15 49 views
-1

我正在學習Java和Thread並且有一個關於繼承的問題。Java的繼承和擴展Thread

例如,我有一個叫做SuperThread的父類,此線程有LocalThreadNetThread

我想在LocalThreadNetThread中使用SuperThread的構造函數。

例如:

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

您不應該爲了這個確切原因(和其他)擴展'Thread'; Java中沒有多重繼承。 –

+0

當您需要引用子類的實例時,您只需要繼承,就好像它們是超類型的實例一樣。換句話說,除非你有一些方法接受'SuperThread'類型的參數,並且你打算將'LocalThread'和'NetThread'實例傳遞給那個方法,否則你不需要繼承。 – erickson

回答

4

LocalThread類中使用Runnable接口並覆蓋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 
    } 
}