超类方法中的return关键字是否返回到称为超类方法的子类?

时间:2019-06-18 14:24:16

标签: java inheritance return

如标题中所述,专门与Java有关。用伪代码的一个例子可能是:

class SubClass extends SuperClass {
    protected void update() {
        super.update()
        // do other functionality
    }
}

class SuperClass {
    protected void update() {
        if (something) return;
    }
}

如果调用了update方法,然后超类返回,那么子类中的其他功能然后执行,还是完全返回到原始子类方法所在的位置?

作为后续问题,如果不是这种情况,是否有办法有效地阻止任何进一步的代码在超类或子类方法中运行?

2 个答案:

答案 0 :(得分:3)

从子类到超类的方法调用没有什么特别的(显然,除了调用哪个方法之外,super关键字会影响哪个方法)。问题的答案源于这一事实:

  

超类方法中的return关键字是否返回到称为超类方法的子类?

是的,就像其他任何方法调用一样。有时,子类需要在超类工作完成之后和/或使用超类的返回值来工作,然后再返回到调用者。

  

...是否有一种方法可以有效地防止任何其他代码在超类或子类方法中运行?

不是超类方法的,不是。您可以引发异常,但是(当然)子类方法可以捕获该异常。再次,就像其他方法调用一样。

答案 1 :(得分:0)

  

由于方法的类型受保护,因此可以从子类进行访问   可能。同样,无效方法不会返回。