0

我在我的项目中使用 SherlockActionBar 库。我的类正在扩展一个抽象类 SherlockActivity

public class AllAppsInfo extends SherlockActivity{}

同时,我也想用 FragmentActivity 扩展我的 AllAppsInfo。由于 java 中的多重继承的疏忽,这是不允许的。

我做了一些搜索,组合是解决方案,但如何在这个场景中使用它?我既不能使抽象 Sherlock 类成为接口,也不能用 Fragment Activity 类来完成。

4

4 回答 4

3

尝试组合

你也可以参考这里

基础很简单:

class A
{
    void aMethod() {}
}

class B
{
    void bMethod() {}
}

class C
{
    void cMethod() {}
}

如果你想打电话aMethod()bMethod()cMethod(); 你可以做以下方式:

class C extends A    // Inheritance
{
    B aBObject = null;    // Composition
    void cMethod()
    {
        aMethod();
        aBObject = new B();
        aBObject.bMethod();
    }
}
于 2012-10-19T11:15:47.617 回答
1

是的,在 Java 中我们没有多重继承。

你有两个选择。

  1. 使用复合图案。这里描述
  2. 通过添加更多接口和基类来重新创建您的类层次结构。
于 2012-10-19T11:23:15.570 回答
1

我通过使用SherlockFragmentActivity扩展我的课程解决了这个问题

public class AllAppsInfo extends SherlockFragmentActivity{}
于 2012-10-22T11:39:00.133 回答
0

Java没有完全多重继承,C++有。你需要解决方法来做它像组合

于 2012-10-19T11:24:29.283 回答