《從零開始學Swift》學習筆記(Day 41)——類的繼承

原創文章,歡迎轉載。轉載請註明:關東昇的博客  php

Swift中的繼承只能發生在類上,不能發生在枚舉和結構體上。一個類能夠繼承另外一個類的方法、屬性、下標等特徵,當一個類繼承其餘類時,繼承類叫子類,被繼承類叫父類(或超類)。子類繼承父類後,能夠重寫父類的方法、屬性、下標等特徵。 java

爲了瞭解繼承性,看這樣一個場景:一位面向對象的程序員小趙,在編程過程當中須要描述和處理我的信息,因而他定義了類Person,以下所示:程序員

class Person {     var name: String     var age: Int         func description() -> String {         return "\(name) 年齡是: \(age)"     }     init () {         name = ""         age  = 1     } }

一週之後,小趙又遇到了新的需求,須要描述和處理學生信息,因而他又定義了一個新的類Student,以下所示:編程

class Student {     var name: String     var age: Int       var school: String         func description() -> String {         return "\(name) 年齡是: \(age)"     }     init() {         school = ""         name = ""         age  = 8     } }

不少人會認爲小趙的作法可以理解並相信這是可行的,可是問題在於StudentPerson兩個類的結構太接近了,後者只比前者多了一個屬性school,卻要重複定義其餘全部的內容,實在讓人「不甘心」。Swift提供瞭解決相似問題的機制,那就是類的繼承,代碼以下所示:微信

class Student: Person {     var school: String     override init() {         school = ""         super.init()         age  = 8     } }

Student類繼承了Person類中的全部特徵,「:」以後的Person類是父類。Swift中的類能夠沒有父類,例如Person類,定義的時候後面沒有「:」,這種沒有父類的就是基類ide

此外override init()是子類重寫父類構造函數。函數

通常狀況下,一個子類只能繼承一個父類,這稱爲單繼承,但有的狀況下一個子類能夠有多個不一樣的父類,這稱爲多重繼承。在Swift中,類的繼承只能是單繼承。多重繼承能夠經過聽從多個協議實現。也就是說,在Swift中,一個類只能繼承一個父類,可是能夠遵循多個協議。網站

 

歡迎關注關東昇新浪微博@tony_ 關東昇。
關注智捷課堂微信公共平臺,瞭解最新技術文章、圖書、教程信息
 
更多精品iOSCocos、移動設計課程請關注智捷課堂官方網站:
http://www.zhijieketang.com
智捷課堂論壇網站:
http://51work6.com/forum.phpspa

相關文章
相關標籤/搜索