Java 有没有办法在现有继承树中插入自定义类?
我正在开发一个android应用程序,目前有两个活动,A和B,它们有一些共同的代码,它们的选项菜单和一些其他代码。为了减少复制和粘贴,我创建了一个名为BaseActivity的类,该类使用扩展活动,然后我使用a和B扩展BaseActivity。至少这是我想做的,但我遇到了一个问题。虽然A现在扩展BaseActivity很好,但我不知道如何使B扩展BaseActivity,因为它不仅是一个活动,而且是一个MapActivity。它的继承树如下所示:Java 有没有办法在现有继承树中插入自定义类?,java,android,Java,Android,我正在开发一个android应用程序,目前有两个活动,A和B,它们有一些共同的代码,它们的选项菜单和一些其他代码。为了减少复制和粘贴,我创建了一个名为BaseActivity的类,该类使用扩展活动,然后我使用a和B扩展BaseActivity。至少这是我想做的,但我遇到了一个问题。虽然A现在扩展BaseActivity很好,但我不知道如何使B扩展BaseActivity,因为它不仅是一个活动,而且是一个MapActivity。它的继承树如下所示: java.lang.Object andr
java.lang.Object
android.content.Context
android.content.ContextWrapper
android.view.ContextThemeWrapper
android.app.Activity
mypackage.BaseActivity
com.google.android.maps.MapActivity
MapActivity继承树:
java.lang.Object
android.content.Context
android.content.ContextWrapper
android.view.ContextThemeWrapper
android.app.Activity
com.google.android.maps.MapActivity
但为了让它继承我的代码,我需要让它看起来像这样:
java.lang.Object
android.content.Context
android.content.ContextWrapper
android.view.ContextThemeWrapper
android.app.Activity
mypackage.BaseActivity
com.google.android.maps.MapActivity
有没有办法在继承树中插入我的自定义类?不行。很难说这里的最佳方法是什么,但我至少会尝试使用组合而不是继承。您能否实现一个单独的非活动对象并同时使用a和B中的一个?不,您不能。很难说这里的最佳方法是什么,但我至少会尝试使用组合而不是继承。你能实现一个单独的非活动对象并使用a和B中的一个吗?既然你的代码实际上是一个MapActivity,它应该扩展它(假设你不想进行合成)。如果您想进行合成,请使您的类具有对MapActivity的引用,这将允许您与该类交互。因为您的代码实际上是一个MapActivity,所以它应该扩展它(假设您不想进行合成)。如果你想进行合成,请让你的类引用MapActivity,这将允许你与该类交互。他确实应该使用合成,并在不同的类中创建共享UI和相关内容。然后,活动可以容纳该特定功能的成员。更简单、更干净的方法。他确实应该使用组合,在不同的类中创建共享UI和相关内容。然后,活动可以容纳该特定功能的成员。更简单、更干净的方法。