我有一个带有活动,线程和用于保存数据的类的Android应用。

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

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

有点:

public class MyTemplate extends ActivityTemplate, ThreadTemplate, DataTemplate


然后

public class MyApp extends MyTemplate


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

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

最佳答案

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

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


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

09-05 08:30