Аннотация @Override в Android

Я новичок в программировании на Java и Android. Проблема, которую я испытываю, заключается в том, что после просмотра нескольких книг, форума и веб-сайтов у меня нет четкого понимания того, что делает аннотация @override. Я понимаю, что это означает, что метод перегоняется. Но зачем это нужно в андроиде. Я вижу это редко в исходном коде java, но все время в android.

Вы можете увидеть это редко в старом исходном коде Java, потому что это довольно недавняя новинка – в то время как Android-код в последнее время довольно по определению.

Это действительно безопасная сеть – она ​​говорит компилятору, что вы пытаетесь переопределить что-то, – поэтому, пожалуйста, провалите, если метод не отменяет ничего, например, из-за опечатки в имени. Это похоже на override ключевого слова, которое является частью объявления метода в C #. Это помогает вам быть явным в том, что вы делаете, что помогает предотвратить ошибки, а также делает ваш код более ясным для будущих читателей.

Хорошо, если вы понимаете основную аннотацию @Override, это просто метаданные, которые заполняют две цели:

  • Опишите, что метод, который он переопределяет, поскольку он был определен в интерфейсе или расширенном классе

  • Помогает вам правильно определить, какой метод локально объявлен и который является переопределяющим, поскольку в андроиде вы, вероятно, будете распространяться из Фрагмента, Активность, Услуги, BroadcastReceiver и т. Д., Это хорошая практика, которая сделает ваш код более чистым.

Что касается проблемы, которую вы не видите в стиле Java, это происходит не только потому, что это довольно новая функция (не новая с 2005 года), но и потому, что вы не переопределяете метод, который в java, по крайней мере, не в Swing Или SWT, чаще всего вы найдете их в TableModel или когда это Servlet в расширенных классах HttpServlet

Потому что вы переопределяете множество методов, например: при создании своей Activity (которая расширяет Activity ) вам необходимо переопределить метод onCreate( Bundle savedInstanceState) для инициализации вашей Activity и т. Д. Каждый раз , когда вы переопределяете метод из класса onCreate( Bundle savedInstanceState) , Eclipse добавить аннотацию @override

@Override означает, что вы хотите переопределить функцию из суперкласса в дочернем классе. Подробнее об абстрактных методах, классах, полиморфизме.

Я почти ничего не знаю об Android-программировании, но @ Override-annotation используется, чтобы показать, что метод переопределяет метод суперкласса (или реализует метод интерфейса в Java 1.6). Помимо чисто документального значения аннотации, по крайней мере, Eclipse также предупреждает вас (или отмечает это ошибка в зависимости от ваших настроек), если метод фактически не переопределяет какой-либо метод суперкласса, когда вы думаете, что он это делает (таким образом, предотвращая некоторую неприятную ошибку -hunting). Возможно, Android-компилятор по умолчанию требует, чтобы все переопределяющие методы аннотировались с помощью @Override.

Это не нужно для java и android. Вы часто видите это в программах Android, потому что eclipse автоматически добавляет его при создании нового действия, метода и т. Д. Если вы удалите аннотацию @Override, ничего не будет добавлено.

@overide – это что-то вроде виртуального метода в c ++, метод Oncreate в android больше похож на виртуальный bool Oninit () в wxWidget, этот метод используется android (Oncreate) для создания вашего графического интерфейса, так как GUI отличается от того, кто программирует Код в Oncreate тоже изменится, поэтому мы должны @overide его. Мы используем любой метод, который используется библиотекой и которую мы хотим настроить. Oncreat (), как Oninit (), – это тот метод, который мы также хотим настроить.

@override означает, что вы используете методы заимствования из доступного класса и не определены программистом.