我有一个Android应用程序,其中包含一个Activity,一个Thread和一个用于保存数据的类。
我创建了一个抽象类ActivityTemplate,它扩展了Activity类并实现了一些回调,例如: onTouchListener。这还包括一些抽象方法。 我创建了一个抽象类(ThreadTemplate),它扩展了Thread类并包含了一些抽象方法。 我创建了一个抽象的DataTemplate类,它包含一些数据元素和一些操作它的简单方法。
我可以通过派生三个类来生成我的应用程序,其中一个来自上面的每个模板,但我真的希望能够将它们全部集成到一个MyTemplate类中,我可以从中派生我的应用程序。
排序:
public class MyTemplate extends ActivityTemplate, ThreadTemplate, DataTemplate
然后
public class MyApp extends MyTemplate
但MyTemplate类不会编译,因为你只能扩展一个类。
有什么想法,还是我问不可能?
答案 0 :(得分:3)
使用对象组合而不是继承:
class MyApp {
private ActivityTemplate activityTemplate;
private ThreadTemplate threadtemplate;
private DataTemplate dataTemplate;
}
使用继承时,请始终问自己子类是否与父级具有“is-a”关系的问题。在这种情况下,MyApp
不是模板。它有一个模板。