Sự khác biệt giữa một protocol và một class trong Swift là gì?

{{FormatNumbertoThousand(model.total_like)}} lượt thích
109 lượt xem
Swift middle

Ở dạng cơ bản của chúng, một protocol mô tả những gì một kiểu đối tượng không xác định có thể làm. Bạn có thể nói rằng nó có hai hoặc ba thuộc tính thuộc nhiều kiểu khác nhau, cùng với các phương thức. Nhưng protocol đó không bao giờ bao gồm bất kỳ thứ gì bên trong các phương thức hoặc cung cấp bộ nhớ thực tế cho các thuộc tính.

Trong một dạng nâng cao hơn, bạn có thể viết các phần mở rộng trên các protocol của mình để cung cấp các triển khai mặc định của các phương thức. Tuy nhiên, bạn vẫn không thể cung cấp bộ nhớ cho các thuộc tính.

Trong khi đó, các class là những thứ cụ thể. Mặc dù chúng có thể áp dụng các protocol - tức là chúng triển khai các thuộc tính và phương thức bắt buộc - nhưng chúng không bắt buộc phải làm điều đó. Bạn có thể tạo các đối tượng từ các class, trong khi các protocol chỉ là định nghĩa kiểu. Hãy thử nghĩ về các protocol là các định nghĩa trừu tượng, trong khi các classstruct là những thứ thực sự mà bạn có thể tạo ra.

{{login.error}}