我怎样才能扩展2个班级

时间:2014-03-10 15:48:34

标签: java android inheritance

我想扩展2个课程,但我不知道如何,我知道这是一个非常愚蠢的问题,但我需要它。

我想这样做,但这是不可能的。我可以用哪种方式做到这一点?

Public class Mclass extends Fragment extends extends ListActivity
{

}

任何人都可以帮助我吗?感谢

4 个答案:

答案 0 :(得分:6)

简单的答案是你不能。 Java不支持多重继承实现。

但是,您可以创建一个实现两个类的接口的类(或继承一个类并实现另一个类的接口),并将您的调用委托给您保留引用的实例。

答案 1 :(得分:0)

Java不支持多继承,但支持多级继承。您可以在B类中扩展A类,并且可以在C类中扩展B类。这可以是在C类中继承A类和B类的方法。但是,您可以实现多个接口。

答案 2 :(得分:0)

你不能从两个类扩展,但是你可以创建一个名为“FragmentListActivity”的类,该类将具有ListActivity类的内容,只是将从Activity更改为FragmentActivity,这将为您提供片段管理器,如果您需要支持旧版本和ListActivity功能,则为支持库。

这是ListActivity的内容: https://github.com/android/platform_frameworks_base/blob/master/core/java/android/app/ListActivity.java

当您创建活动时,它们将从这个新的FragmentListActivity扩展。

答案 3 :(得分:0)

根据您的需要,可能会有一个简单的解决方案。你不能从java中的多个类扩展,但如果你不需要你的类有两种类型(两个类的类型)而你只需要它们的功能,获得它的最好方法是创建一个实例一个变量这两种类型并扩展另一种类型。

public class MyClass extends FirstClass{

SecondClass variable;

public MyClass(){

variable = new SecondClass();
}

如果你需要同时使用这两个类,因为你想要访问私有变量或方法,那么创建另一个只从其中一个扩展的类,并创建允许你使用私有功能的其他函数。然后你可以实现该类而不是你想要扩展的类。