1,Swift中協定類似于别的語言裡的接口,協定裡隻做方法的聲明,包括方法名、傳回值、參數等資訊,而沒有具體的方法實作。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<code>protocol</code> <code>Person</code> <code>{</code>
<code> </code><code>//讀寫屬性</code>
<code> </code><code>var</code> <code>name:</code><code>String</code><code>{</code><code>get</code> <code>set</code><code>}</code>
<code> </code>
<code> </code><code>//隻讀屬性</code>
<code> </code><code>var</code> <code>age:</code><code>Int</code><code>{</code><code>get</code><code>}</code>
<code> </code><code>//類型方法</code>
<code> </code><code>class</code> <code>func</code> <code>method1()</code>
<code> </code><code>//執行個體方法</code>
<code> </code><code>func</code> <code>method2() -></code><code>Int</code>
<code> </code><code>//突變方法</code>
<code> </code><code>mutating</code> <code>func</code> <code>method3()</code>
<code>}</code>
2,協定可以繼承另一個協定
17
<code>protocol</code> <code>Animal</code><code>{</code>
<code> </code><code>func</code> <code>move()</code>
<code>protocol</code> <code>Bird</code><code>:</code><code>Animal</code><code>{</code>
<code> </code><code>func</code> <code>song()</code>
<code>class</code> <code>Chiken</code><code>:</code><code>Bird</code><code>{</code>
<code> </code><code>func</code> <code>song(){</code>
<code> </code><code>println</code><code>(</code><code>"母雞咯咯"</code><code>)</code>
<code> </code><code>}</code>
<code> </code><code>func</code> <code>move(){</code>
<code> </code><code>println</code><code>(</code><code>"母雞走"</code><code>)</code>
3,如果某個類集繼承了某個父類,又遵循了某個協定,那麼冒号後面應該先寫父類,再寫協定
<code>class</code> <code>CC</code><code>:繼承的父類, 協定1, 協定2{</code>