Подтвердить что ты не робот

В чем разница между протоколом и интерфейсом в Objective-c?

Я смущен тем, что разница между протоколом и интерфейсом? Кажется, что они делают то же самое?

Является ли это абстрактным в С#, в котором вы должны его реализовать?

4b9b3361

Ответ 1

протокол в Objective-C совпадает с интерфейсом в java, если это означает, что вы имеете в виду

Ответ 2

В Objective C интерфейс эквивалентен объявлению класса С++. И протокол эквивалентен интерфейсу Java.

Изменить: в Objective C определение класса разделяется на два компонента, называемые интерфейсом и реализацией, что позволяет сжимать файлы заголовков. Это похоже на С++. У Java нет эквивалента, потому что вы реализуете свои функции класса в определении класса. В этом отношении С# похож на Java.

Ответ 3

Objective-C: protocol.

Java: interface.

В противном случае нет разницы.

Ответ 4

In Java - you implement an Interface
In Swift/Objective C - you conform to a Protocol

"Program to an Interface, not an Implementation"
- Design Patterns 1995

Ответ 5

Протокол представляет собой группу связанных свойств и методов, которые могут быть реализованы любым классом. Они более гибкие, чем интерфейс обычного класса, поскольку они позволяют повторно использовать единую декларацию API в совершенно несвязанных классах. Это позволяет представлять горизонтальные отношения поверх существующей иерархии классов.

Интерфейс класса объявляет методы и свойства, связанные с этим классом.

Протокол, напротив, используется для объявления методов и свойств, которые не зависят от какого-либо конкретного класса.