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

一个整数.平方()

一个整数


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值