如何在Java中组合类

时间:2011-09-04 18:44:19

标签: java android class extends

我有一个Android应用程序,其中包含一个Activity,一个Thread和一个用于保存数据的类。

我创建了一个抽象类ActivityTemplate,它扩展了Activity类并实现了一些回调,例如: onTouchListener。这还包括一些抽象方法。 我创建了一个抽象类(ThreadTemplate),它扩展了Thread类并包含了一些抽象方法。 我创建了一个抽象的DataTemplate类,它包含一些数据元素和一些操作它的简单方法。

我可以通过派生三个类来生成我的应用程序,其中一个来自上面的每个模板,但我真的希望能够将它们全部集成到一个MyTemplate类中,我可以从中派生我的应用程序。

排序:

public class MyTemplate extends ActivityTemplate, ThreadTemplate, DataTemplate

然后

public class MyApp extends MyTemplate

但MyTemplate类不会编译,因为你只能扩展一个类。

有什么想法,还是我问不可能?

1 个答案:

答案 0 :(得分:3)

使用对象组合而不是继承:

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

使用继承时,请始终问自己子类是否与父级具有“is-a”关系的问题。在这种情况下,MyApp 不是模板。它有一个模板。