Về cơ bản, các Swift protocol rất giống với Java interface ngoại trừ:
Swift protocol có thể chỉ định các thuộc tính phải được triển khai.
Swift protocol cần xử lý giá trị / tham chiếu thông qua việc sử dụng từ khóa "mutating" (vì các protocol có thể được thực hiện bởi structure, enumeration hoặc class).
Bạn có thể kết hợp các protocol tại bất kỳ thời điểm nào bằng cách sử dụng "Protocol Composition". Điều này thay thế cách protocol<A, B> cũ của protocol composition. Ví dụ: khai báo một tham số hàm phải tuân theo protocol Named và Aged:
func wishHappyBirthday(to celebrator: Named & Aged) {}