2015-05-04 64 views
2

我從來沒有與目標C合作過,但對C++有一定的經驗。Swift中的超類與協議?

目標C中超類和協議的區別究竟是什麼?我讀過一個協議本質上是一個純虛擬類,但它是什麼?協議是否只是特定類型的超類?

+0

這裏有一個非常有用的關於協議的文檔:https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/WorkingwithProtocols/WorkingwithProtocols.html#//apple_ref/doc/uid/TP40011210 -CH11-SW1 –

回答

2

協議是一個類將要遵守的契約。當一個類符合協議時,它會告訴編譯器它將實現協議中聲明的所有方法和所有屬性。 在Objective-C中,類還需要一個超類。在很多情況下,這是NSObject。超類實現了很多方法(如isEqual:)。協議從不實現任何方法或定義任何屬性。

1

一個協議告訴哪個屬性/操作類必須執行。超類實現它們,你可以添加自己的東西在上面。

0

協議定義了類或結構必須實現的一組方法定義,非常類似於Java接口。

超類是給定類繼承其方法定義的類,這些方法的實現以及實例和類屬性。