2011-09-04 47 views
0

我有一個Android應用程序,其中包含一個Activity,一個線程和一個用於保存數據的類。如何組合Java中的類

我創建了一個抽象類ActivityTemplate,它擴展了Activity類並實現了一些回調, onTouchListener。這還包括一些抽象方法。 我創建了一個抽象類(ThreadTemplate),它擴展了Thread類幷包含了一些抽象方法。 我創建了一個抽象的DataTemplate類,它包含一些數據元素和一些簡單的方法來操作它。

我可以通過派生三個類來生成我的應用程序,其中一個來自上面的模板,但我真的希望能夠將它們全部轉換爲可從中派生我的應用程序的單個MyTemplate類。

排序:

public class MyTemplate extends ActivityTemplate, ThreadTemplate, DataTemplate 

然後

public class MyApp extends MyTemplate 

但MyTemplate的類將不能編譯,你只能繼承一個類。

有什麼想法,還是我問不可能?

回答

3

使用對象組合,而不是繼承:

class MyApp { 
    private ActivityTemplate activityTemplate; 
    private ThreadTemplate threadtemplate; 
    private DataTemplate dataTemplate; 
} 

當使用繼承總是問自己,你的子類是否有「是一個」與父關係的問題。在這種情況下,MyApp而不是模板。它有一個模板。

+0

感謝響應,但我不明白這將如何讓我在沒有單獨文件的情況下在所有三個類中實現抽象方法? – FrinkTheBrave