swift語言 繼承和擴展

參考來源:小波說雨燕

//父類

class {

    var 速度 = 0

    var 描述 :String {

        return "時速\(速度)公里每小時"

    }

    

    func 聲響() {

        

    }

}


let 一輛車 = ()

一輛車.描述

一輛車.聲響()

/**

*  func 聲響() 表示車類中有這樣一個方法,與oc中的實例方法類似

   調用時,一輛車.聲響()

*/



//子類繼承父類

class 自行車: {

    var 有籃子 = false

}


let 一輛自行車 = 自行車()

一輛自行車.有籃子 = true


一輛自行車.速度 = 25

一輛自行車.描述


//子類的子類

final class 情侶自行車: 自行車 {

    var 當前乘客數 = 0

}


let 一輛情侶自行車 = 情侶自行車()

一輛情侶自行車.當前乘客數 = 2

一輛情侶自行車.速度 = 20

一輛情侶自行車.描述



//子類重載父類的方法

//override 告訴你說下面這個方法是從父類/接口 繼承過來的,需要你重寫一次

class 動車: {

    override func 聲響() {

        println("------")

    }


}

let 一輛動車 = 動車()


一輛動車.聲響() //調用了方法 聲響() 運行後將會輸出 ------




//子類重載父類的計算屬性

class 汽車: {

    var 輪子數 = 0


    override var 描述 :String {

        return super.描述 + ",\(輪子數)個輪子"

    }


    override var 速度 :Int {

        didSet {

            if 速度 > 120 {

                println("警告:您的速度已經超過120公里每小時,爲了您的安全,進入自動駕駛狀態.")

            }

        }

    }


}



let 一輛汽車 = 汽車()


println(一輛動車.描述)


一輛汽車.速度 = 121

一輛汽車.輪子數 = 4

一輛汽車.描述


/**

對象中的變量可以直接拿過來使用

*/

println("you" + 一輛汽車.描述)


//擴展

//--已存在的類/結構體/枚舉類型,通常用於

//1.源代碼不可知的情況

//2.把複雜的類分解,提高可維護性


extension Double {

    var rmb: Double {

        return self * 0.0597

    }

}

//日本人均月薪314150日元

31_4150.rmb



//整數自行平方

extension Int {

    mutating func 平方() {

        self *= self

    }

}


var 一個整數 = 999

一個整數.平方()

一個整數


發佈了61 篇原創文章 · 獲贊 2 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章