В swift 3.0 Предположим, что ваше имя переменной UITextField - textField.
textField.font = UIFont(name: "HelveticaNeue-Medium", size: 17)// for medium
name: "HelveticaNeue-Bold" // for bold
Я предпочитаю использовать @Override
в этом случае, чтобы метод отмечался в подклассах при изменении суперкласса (либо полное удаление метода, либо изменение его сигнатуры и т. д.
Единственное реальное отличие состоит в том, что без аннотации, если метод в суперклассе / интерфейсе изменяется или удаляется, рассматриваемая реализация просто становится «нормальным» методом этого класса. Таким образом, вы должны добавить аннотацию, если вы реализуете метод исключительно для выполнения контракта; и вам, вероятно, не стоит добавлять его, если метод имеет смысл в вашем классе независимо от каких-либо реализованных интерфейсов или унаследованных абстрактных методов.
Да - опять же, он сообщает компилятору: «Я действительно хочу переопределить здесь метод. Если там нет соответствующего метода для переопределения, я сделал ошибку и хочу, чтобы мне об этом сказали! »
Лично мне жаль, что это просто аннотация, а не часть языка (как в C #), но это, конечно, преимущество ретроспективного анализа.
Да. Это рекомендовано Джошуа Блохом в «Эффективной Java».
] На самом деле, Джошуа Блох в последнем абзаце страницы 178 в []Effective Java (2-е изд.) [] говорит, что для методов конкретных классов, которые переопределяют абстрактные методы, не обязательно использовать аннотацию []Override[
], потому что компилятор все равно выдаст ошибку. Однако, "это не вредит"[
] Я бы порекомендовал выбрать стратегию и придерживаться ее последовательно. [
]