从超类调用子类中的重写方法

时间:2015-12-16 11:47:17

标签: java inheritance

我需要在Android中创建一个可用作BaseActivity的活动。

我只是有一个问题我对此有些怀疑。这会有用吗?这是一个好模式吗?

class SuperClass {

    public void A() {
        ...
        B();
    }

    public void B(){
        //Does this get fired from the SubClass's method A()?
    }
}

class SubClass extends SuperClass {

    @Override
    public void A(){
        super.A();
    }

    @Override
    public void B(){
        ...
        //Or does this?
    }
}

我的问题是,当我在super.A()中致电Subclass时,方法B()是否会从SubClassSuperClass被解雇?

2 个答案:

答案 0 :(得分:2)

将执行B的{​​p> SubClass(假设在A的实例上执行SubClass)。这正是方法覆盖的工作方式。顺便说一句,如果它只是调用A方法,则无需覆盖SubClass中的SuperClass

答案 1 :(得分:0)

“方法B()会从SubClass或SuperClass中被触发吗?” - 我不完全理解你的问题。

基本上,SubClass中的A()将在超类中调用A()。超类将调用SubClass的B()。