標籤:
// 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繼承和擴充