簡體   English   中英

Objective-c中的協議和接口有什么區別?

[英]What is the difference between a protocol and a interface in Objective-c?

我對協議和接口之間的區別感到困惑? 他們似乎都在做同樣的事情?

它是否像C#中的抽象一樣,你需要實現它?

Objective-C中的協議與java中的接口相同,如果這就是你的意思

在Objective C中,接口等同於C ++類聲明。 協議等同於Java接口。

編輯:在Objective C中,類定義分為兩個組件,稱為接口和實現,它允許您縮小頭文件。 這與C ++類似。 Java沒有等價物,因為您在類定義中實現了類函數。 在這方面,C#與Java類似。

Objective-C: protocol

Java: interface

否則,沒有區別。

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

協議是一組可由任何類實現的相關屬性和方法。 它們比普通的類接口更靈活,因為它們允許您在完全不相關的類中重用單個API聲明。 這使得可以在現有類層次結構的頂部表示水平關系。

類接口聲明與該類關聯的方法和屬性。

相反,協議用於聲明獨立於任何特定類的方法和屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM