天天看點

Swift - 協定(protocol)

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() -&gt;</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>