swift繼承和擴充

來源:互聯網
上載者:User

標籤:

// inherit & extension 繼承和擴充

 

//父類

class 車 {

    var 速度 = 0

    var 描述 :String {

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

    }

    func 聲響() {

        

    }

}

 

let 一輛車 = 車()

一輛車.描述

 

//子類繼承父類

class 單車: 車{

    var 有籃子 = false

}

 

let 一輛單車 = 單車()

一輛單車.有籃子 = true

一輛單車.速度 = 25

一輛單車.描述

 

 

//子類的子類

class 情侶單車:單車{

    var 當前乘客數 = 0

}

 

let 一輛情侶單車 = 情侶單車()

一輛情侶單車.速度 = 20

一輛情侶單車.描述

 

 

//子類重載父類的方法

class 動車: 車{

    override func 聲響() {

        println("嘟嘟嘟")

    }

}

 

let 一輛動車 = 動車()

一輛動車.聲響()

 

 

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

class 汽車:車{

    // override var 速度 = 60

    var 輪子數 = 0

    

    override var 描述:String{

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

    }

    override var 速度 :Int{

        didSet {

            if 速度 > 120 {

                println("警告:你超速了")

            }

        }

    }

}

 

let 一輛汽車 = 汽車()

一輛汽車.速度 = 121

一輛汽車.輪子數 = 4

一輛汽車.描述

 

//擴充  (相當於分類)

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

//1.原始碼不可知的情況

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

 

extension Double {

    var rmb: Double{

        return self * 0.0597

    }

}

31_4150.rmb

 

 

//整數自行平方

extension Int {

    mutating func 平方(){

        self *= self

    }

}

 

var 一個整數 = 1024

一個整數.平方()

一個整數

 

swift繼承和擴充

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.