LA_ LA_ - 13 days ago 7
Java Question

Can one class extend two classes?

My class should extend two classes at the same time:

public class Preferences extends AbstractBillingActivity {

public class Preferences extends PreferenceActivity {


How to do so?

Upd. Since this is not possible, how should I use that AbstractBillingActivity with Preferences then?

Upd2. If I go with interfaces, should I create:


  1. BillingInterface

    public interface BillingInterface extends PreferenceActivity, AbstractBillingActivity {

    }

  2. PreferenceActivity

    public interface PreferenceActivity {

    }

  3. AbstractBillingActivity

    public interface AbstractBillingActivity {

    void onCreate(Bundle savedInstanceState);

    }



and then

public class Preferences implements BillingInterface {

Answer

Java does not support multiple inheritance.

There are a few workarounds I can think of:

The first is aggregation: make a class that takes those two activities as fields.

The second is to use interfaces.

The third is to rethink your design: does it make sense for a Preferences class to be both a PreferenceActivity and an AbstractBillingActivity?