Это возможность объектов иметь единый интерфейс
но разную реализацию
.
Единый интерфейс реализуется с помощью протоколов
.
Полиморфные объекты
создаются с помощью обобщенного типа id
и могут содержать разные типы в разный момент времени.
Анонимные объекты
создаются с помощью протокола и типа id (Это объекты без информации о типе и внутренней структуре объекта)
@property(nonatomic, strong) <Protocol>id object;