Intereting Posts

Использование 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 () для вашего приложения.