1. ホーム
  2. java

[解決済み] 2つのクラスからの拡張

2022-03-06 01:21:03

質問

どうすればいいのですか?

public class Main extends ListActivity , ControlMenu 

また、ControlMenuというクラスでメニューを作成し、残りのアクティビティで拡張しているのですが、この方法で大丈夫なのか知りたいのです。

どのように解決するのですか?

Extendできるのは1つのクラスだけです。そして、多くのソースからインターフェイスを実装します。

複数のクラスを拡張することはできません。唯一の解決策は、どちらのクラスも継承せず、それぞれのクラスの内部変数を持ち、自分のオブジェクトへのリクエストを自分の行きたいオブジェクトにリダイレクトすることで、よりプロキシに近いことをすることです。

 public class CustomActivity extends Activity {

     private AnotherClass mClass;

     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         mClass = new AnotherClass(this);
     }

     //Implement each method you want to use.
     public String getInfoFromOtherClass()
     {
        return mClass.getInfoFromOtherClass();
     }
 }

これが私が思いついた最良の解決策です。 両方のクラスから機能を得ることができ、なおかつ、実際には1つのクラスタイプにしかなりません。

欠点は、キャストを使うとInternalクラスのMoldに収まらないことです。