1. ホーム
  2. java

[解決済み] 1つのクラスが2つのクラスを拡張することは可能か?

2023-08-23 06:46:53

質問

私のクラスは、同時に2つのクラスを拡張する必要があります。

public class Preferences extends AbstractBillingActivity {

public class Preferences extends PreferenceActivity {

どうすればいいのか?

更新 . これは不可能なので、どのようにすればよいのでしょうか? AbstractBillingActivity を Preferences と一緒に使用するにはどうすればよいですか?

アップデート2 . インターフェースで行くなら、作成した方がいいのかな。

  1. Billingインターフェース

    public interface BillingInterface extends PreferenceActivity, AbstractBillingActivity {
    
    }
    
    
  2. プリファレンス・アクティビティ

    public interface PreferenceActivity {
    
    }
    
    
  3. AbstractBillingActivity

    public interface AbstractBillingActivity {
    
            void onCreate(Bundle savedInstanceState);
    
    }
    
    

で、次に

public class Preferences implements BillingInterface {

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

Javaは多重継承をサポートしていません。

思いつく限りの回避策がいくつかあります。

1つ目は集約です。これら2つのアクティビティをフィールドとして取るクラスを作ります。

2つ目はインターフェースを使うことです。

3つ目は、設計を見直すことです。 Preferences クラスが PreferenceActivity an AbstractBillingActivity ?