0

给定两个类,一个子类另一个,都超出了我的范围,所以我对它们没有任何影响,例如。

public class Bla {
}

public class SubBla extends Bla {
}

如何在不重复代码或限制 SubBla 的特殊功能的情况下创建 Bla 和 SubBla 的自定义子类?

编辑:所以我不必:

public class MyBla extends Bla {
    public void someOverriddenMethodOfBla()
    {
        super.someOverriddenMethodOfBla();
        // do something custom
    }
}

public class MySubBla extends SubBla {

    // repeated code: this should do the same as MyBla's customized method
    public void someOverriddenMethodOfBla()
    {
        super.someOverriddenMethodOfBla();
        // do the same custom stuff as in MyBla's method
    }

}

编辑 2,稍微清理一下:

假设我需要 Activity 和 ListActivity 这两个 android 类,它们是 Activity 的子类。现在我想在 onCreate 方法中添加相同的自定义。如何在不重复代码的情况下完成此操作?

谢谢!

4

3 回答 3

1

如果我理解正确,您正在尝试绕过SubBla的实现,并Bla直接从SubBla. 您要做的基本上是 call super.super,这在 Java 中是做不到的

这里有一个很好的解释。

于 2013-04-22T21:23:26.153 回答
0

实际上继承的目的是你重用代码。在 java 中只存在公共继承,这意味着方法的可访问性将保持相同的槽继承。

如果您执行 MyBla extends Bla,则来自 Bla 的所有公共方法在 MyBla 类中仍然可见。

于 2013-04-22T20:53:53.143 回答
0

考虑到您的 Android 示例ActivityListActivity子类ListActivityCustomListActivity. 在CustomListActivity添加您的onCreate(). 现在而不是在您的应用程序中使用ActivityListActivity使用CustomListActivity

于 2013-04-22T21:49:41.413 回答