Un protocolo es un grupo de propiedades y métodos relacionados que puede implementar cualquier clase. Son más flexibles que una interfaz de clase normal, ya que le permiten reutilizar una sola declaración de API en clases completamente independientes. Esto hace posible representar relaciones horizontales sobre una jerarquía de clases existente.
Una interfaz de clase declara los métodos y propiedades asociados con esa clase.
Un protocolo, por el contrario, se utiliza para declarar métodos y propiedades que son independientes de cualquier clase específica.
posible duplicado de [Diferencias entre las interfaces Java y los protocolos Objective-C?] (Http://stackoverflow.com/questions/990360/differences-between-java-interfaces-and-objective-c-protocols) –