【问题标题】:How to combine classes in Java如何在 Java 中组合类
【发布时间】:2011-09-04 18:44:19
【问题描述】:

我有一个带有 Activity、Thread 和保存数据的类的 Android 应用。

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

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

种类:

public class MyTemplate extends ActivityTemplate, ThreadTemplate, DataTemplate

然后

public class MyApp extends MyTemplate

但 MyTemplate 类将无法编译,因为您只能扩展一个类。

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

【问题讨论】:

    标签: java android class extends


    【解决方案1】:

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

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

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

    【讨论】:

    • 感谢回复,但我不明白这将如何让我在没有单独文件的情况下在所有三个类中实现抽象方法?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-29
    • 1970-01-01
    • 2014-12-05
    • 1970-01-01
    • 2012-04-09
    相关资源
    最近更新 更多