所有活动的BaseActivity都可能吗?

Upv*_*ote 1 java android android-activity

我希望在各种活动中分享方法和属性.例如

public class BaseActivity extends Activity
Run Code Online (Sandbox Code Playgroud)

将是另一项活动的父母

public class MainActivity extends BaseActivity
Run Code Online (Sandbox Code Playgroud)

但如果孩子活动是例如ListActivity,这是不可能的,对吧?我也需要ListActivity的基类吗?这将是冗余代码.

我可以将ListActivity转换为Activity,但这需要更多的代码.

有什么建议?

isn*_*bad 5

你是对的.由于java不支持多重继承,因此一个类只能有一个基类.

但是您可以通过委派而不是继承来工作:将您的方法放入一个单独的类(不继承Activity)并在您的活动中使用它的实例.然后,您可以将冗余代码(创建和保存实例)减少到最少.

也可以看看:

http://sourcemaking.com/refactoring/replace-inheritance-with-delegation

如何在Java中实现多重继承