Выбор ответа Junior Протоколы, POP и дженерики спрашивают часто обновлено

Протокольно-ориентированное программирование

Вопрос

Что из перечисленного главное преимущество протоколов с расширениями перед наследованием классов?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Поведение подмешивается к структурам, enum и чужим типам. Наследование одно, работает только для классов и тянет за собой всю иерархию.

Варианты ответа

  1. Протоколы позволяют хранить свойства с данными в расширениях
  2. Протоколы работают только с классами, поэтому вызовы быстрее
  3. Протоколы заменяют ARC и избавляют от циклов ссылок
  4. Поведение подмешивается к структурам, enum и чужим типамправильный ответ

Разбор

Наследование одно, работает только для классов и тянет за собой всю иерархию. Протоколы можно применять к любым типам, в том числе через ретроактивное расширение чужих, и комбинировать несколько. Хранимые свойства в расширениях запрещены, только вычисляемые. Протоколы не ограничены классами и к управлению памятью отношения не имеют.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.