我有一个带有活动,线程和用于保存数据的类的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
不是模板。它有一个模板。