我在我的项目中使用 SherlockActionBar 库。我的类正在扩展一个抽象类 SherlockActivity
public class AllAppsInfo extends SherlockActivity{}
同时,我也想用 FragmentActivity 扩展我的 AllAppsInfo。由于忽略了 java 中的多重继承,这是不允许的。
我做了一些搜索,组合是解决方案,但如何在这个场景中使用它?我既不能将抽象 Sherlock 类设置为接口(interface),也不能使用 Fragment Activity 类来完成同样的操作 。
最佳答案
尝试Composition .
您可以引用here也是。
基础很简单:
class A
{
void aMethod() {}
}
class B
{
void bMethod() {}
}
class C
{
void cMethod() {}
}
如果您想从cMethod()
调用aMethod()
和bMethod()
;您可以按照以下方式进行:
class C extends A // Inheritance
{
B aBObject = null; // Composition
void cMethod()
{
aMethod();
aBObject = new B();
aBObject.bMethod();
}
}
关于java - 一个类如何扩展两个不同的类,其中一个类来自外部库,另一个类是内置的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12972995/