在Java中是否可以根据某个变量从两个不同的类继承一个类?

时间:2011-07-12 21:01:30

标签: java android oop

我在Android中有一个继承自Activity的父类,所有其他活动都从该父类继承。这个父母在onPause和onResume上做了一些生命周期的东西,我的所有活动都需要。问题是我有一个必须从Android的MapActivity继承的Map活动,但我仍然需要这个活动来拥有我的父类生命周期方法。有没有办法让MapActivity继承两个父母?或者也许是部分课程,我不太确定。任何想法都会很棒。

谢谢,

布赖恩

4 个答案:

答案 0 :(得分:2)

简短的回答是否定的。你不能拥有一个继承Java中两个类的类。标准建议是使用interface,但我不认为在这种情况下适合您。

也许您可以通过使用组合来实现您正在寻找的代码重用,例如,而不是继承。如果您发布代码示例,我可以给您一个更具体的答案。

答案 1 :(得分:0)

抱歉,在Java中,您只能扩展一个课程。但是,您可以实现多个接口。您可以让BaseMapActivity类扩展MapActivity,然后让MainMapActivity扩展BaseMapActivity。最简单的方法是从已存在的基础Activity复制代码并将其放入MainMapActivity中。

答案 2 :(得分:0)

在Java中,您只能从单个类扩展,但是您可以从单个类实现多个类。另一件需要考虑的事情是将扩展的子类链接在一起(这模拟了多重继承)。

可在此处找到更好的说明:http://www.javaworld.com/javaworld/jw-10-2005/jw-1024-multiple.html

答案 3 :(得分:0)

这很有趣,我今天早些时候遇到了完全相同的问题(但是使用了PreferenceActivity)。

不幸的是,我不认为这是可能的,我最终制作了我父类的副本并将名称和extends Activity更改为extends PreferenceActivity