Android @Override использование [дубликат]

Этот вопрос уже имеет ответ здесь:

(Новичок к Java, старое время парень C#.)

Я заметил большое использование @Override в примере кода Android. Я думал, что все методы Java были по умолчанию "Виртуальными"?

Что затем делает @Override ?

Пример:

private class HelloWebViewClient extends WebViewClient {

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return true;
    }
}
67
задан palacsint 10 January 2012 в 13:09
поделиться

2 ответа

Это аннотация, которую вы можете использовать, чтобы сообщить компилятору и своей среде IDE, что вы намерены использовать метод, имеющий эту аннотацию, как переопределение метода суперкласса. У них есть предупреждения / ошибки на случай, если вы сделаете ошибки, например, если вы намереваетесь переопределить метод, но неправильно написали его, если есть аннотация, IDE или компилятор сообщит вам, что это , а не на самом деле переопределение метод суперкласса, и, таким образом, вы можете определить причину и исправить орфографическую ошибку.

Это тем более важно, например, для приложений и действий Android, где все вызовы будут основываться на жизненном цикле действия - и если вы не переопределите методы жизненного цикла должным образом, они никогда не будут вызваны платформой. Все будет скомпилировано нормально, но ваше приложение не будет работать так, как вы предполагали. Если вы добавите аннотацию, вы получите сообщение об ошибке.

99
ответ дан 24 November 2019 в 14:29
поделиться

Аннотация Override-Annotation - это просто подсказка компилятору, что вы хотите перезаписать определенную функцию. Затем компилятор проверит родительские классы и интерфейсы, если функция там существует. Если нет, вы получите ошибку компиляции.

По сути, это просто механизм безопасности.

Для справки, смотрите эту статью (переопределение объясняется где-то в середине)

23
ответ дан 24 November 2019 в 14:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: