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 } } //日本人均月薪31万4150日元 31_4150.rmb //整数自行平方 extension Int { mutating func 平方() { self *= self } } var 一个整数 = 999 一个整数.平方() 一个整数 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |