Intereting Posts
RecycleView устанавливает неправильную высоту для элементов Обновите плагин Android Studio Gradle до последней версии ViewDragHelper: как его использовать? Android: установите общие настройки во время установки? Как отключить 3d-здания с Google Maps Android API v2 Удалить разделитель ListView (в файле макета xml) Клавиатура дисплея эмулятора Android для Visual Studio Как передать пользовательские параметры компонента в java и xml Модернизация 2 – Динамический URL-адрес Загрузка файла на сервер с использованием модифицированного Как реализовать реферальную программу в мобильных приложениях для Android и iPhone Проект Android жалуется «Тип болтов. Задача не может быть решена. Это косвенно ссылается на требуемые .class-файлы " Каков наилучший backport виджета Android для 2.2? Как получить цветовую температуру от коррекции цвета Два вопроса о максимальных размерах кучи и доступной памяти в android

Использование 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; } } 

Solutions Collecting From Web of "Использование Android @Override"

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

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

Этот код для новичка, который действительно хочет понять процесс @Override , поможет вам! (Напомните концепцию наследования Java.)

Например, класс Fish может иметь два подкласса: FreshwaterFish и SaltwaterFish .

Эти подклассы будут иметь все функции класса Fish , но могут дополнительно настроить объекты с помощью новых атрибутов и поведения или модифицированных поведений из родительского класса Fish . Например, класс FreshwaterFish может включать информацию о типе пресноводной окружающей среды (например, река, озеро, пруд или лужа).

Аналогично, класс SaltwaterFish может настроить метод makeBabyFish() таким образом, чтобы рыба ест своего помощника после разведения (как определено в суперклассе), используя механизм переопределения, например:

 public class SaltwaterFish extends Fish { @Override public void makeBabyFish(Fish fishSpouse, int numBabies) { // call parent method super.makeBabyFish(fishSpouse, numBabies); // eat mate eat(fishSpouse); } } 

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

В основном это механизм безопасности.

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

Переопределение в основном используется в случае определения метода. Перемещение похоже на его значение.

Я попытаюсь объяснить очень слабым способом. Предположим, если вы уже определили метод Oncreate () и связали с ним связанные свойства. И снова, когда вы вызываете метод Oncreate () в свой код для определенного объекта, код, который вы сейчас написали … переопределит формально определенное свойство или унаследованное свойство Oncreate () для вашего приложения.