0

プロジェクトで SherlockActionBar ライブラリを使用しています。また、クラスは抽象クラス SherlockActivity を拡張しています。

public class AllAppsInfo extends SherlockActivity{}

その間に、AllAppsInfo を FragmentActivity で拡張したいと考えています。これは、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では多重継承はありません。

あなたの前に2つのオプションがあります。

  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 に答える