你到底想达到什么目的?除了一些变量或部分布局之外,有两个不同的活动和一个共同的用户界面?
在这种情况下,我建议有一个基本的抽象活动和两个具体的继承子类。您在基本活动中定义所有常见行为,并为差异提供抽象方法,然后在实际实现中覆盖这些方法。
例如,对于具有不同布局资源的两个活动:
public abstract class BaseActivity extends Activity {
@Override
public void onCreate(bundle) {
super.onCreate(bundle);
setContentView(getLayoutResourceId());
}
protected abstract int getLayoutResourceId();
}
public class Activity1 extends BaseActivity {
@Override
public void onCreate(bundle) {
super.onCreate(bundle);
// do extra stuff on your resources, using findViewById on your layout_for_activity1
}
@Override
protected int getLayoutResourceId() {
return R.layout.layout_for_activity1;
}
}
对于您想要特定于子类的每一位,您可以拥有更多的抽象方法。
在我看来,这样做比拥有一个具体的子类到一个具体的超类要好得多:这会导致很多问题并且通常难以调试。