给定两个类,一个子类又另一个子类,这两个子类都超出了我的范围,因此我对它们没有任何影响。

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,清除垃圾:

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

谢谢!

最佳答案

如果我对您的理解正确,则您正在尝试绕过SubBla的实现,并直接从Bla的子类调用SubBla的实现。您要尝试做的实际上是调用super.super,这在Java中无法完成

这个here有一个很好的解释。

10-08 13:38
查看更多