Возвращает ли ключевое слово return в методе суперкласса тот подкласс, который вызвал метод суперкласса? - PullRequest
0 голосов
/ 18 июня 2019

Как указано в названии, относящемся конкретно к Java.В псевдокоде примером этого может быть:

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

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

Если вызывается метод обновления и затем возвращается суперкласс, выполняет ли тогда другие функции в подклассе или полностью возвращается туда, где исходный метод подклассаназывается?

В качестве дополнительного вопроса, если это не так, есть ли способ эффективно предотвратить дальнейший запуск кода в методах суперкласса или подкласса?

Ответы [ 2 ]

3 голосов
/ 18 июня 2019

В вызове метода из подкласса к суперклассу нет ничего особенного (кроме того, какой метод вызывается, на что, очевидно, влияет ключевое слово super). Ответы на ваши вопросы вытекают из этого факта:

Возвращается ли ключевое слово return в методе суперкласса тому подклассу, который вызвал метод суперкласса?

Да, как и любой другой вызов метода. Иногда подкласс должен выполнять работу после того, как работа над суперклассом завершена, и / или с возвращаемым значением из суперкласса перед возвратом вызывающей стороне.

... есть ли способ эффективно предотвратить дальнейший запуск кода в методах суперкласса или подкласса?

Не из метода суперкласса, нет. Вы можете выдать исключение, но (конечно) метод подкласса может его перехватить. Который, опять же, как и любой другой вызов метода.

0 голосов
/ 18 июня 2019

Поскольку тип метода защищен, доступ из подклассов возможный. Также void методы не возвращаются.

...