參考來源:小波說雨燕
//父類
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
一個整數.平方()
一個整數