第2部分 故事的進階要素 - 程式設計語言Swift的進階部分
10 方法
10.1 概念通俗講解
方法是一種特殊的函數,在類或者結構體裡的函數叫方法。其實方法的本質就是函數,隻不過它是在類裡,結構體裡使用的。
從使用的範圍上,方法可以分為執行個體方法和類方法。與執行個體方法和執行個體屬性類似,執行個體方法是屬于特定類型執行個體的方法。例如定義一個類:人,我們可以定義這個人的屬性,例如體重。然後可以定義一個減肥的執行個體方法,來通過一段代碼來描述減肥的流程。每個人的減肥方法可以是不同的。類方法與類屬性類似,類方法用于定義對某個類型的所有執行個體都可用的方法,例如定義一個方法"跑步",這裡假定每個人的跑步方法是一樣的,就可以定義一個跑步的類方法,大家都可以用。
10.2 定義簡潔介紹
class Person{
//執行個體方法的定義
func reduceWeight(){
print("減肥方法")
}
//類方法的定義
static func run(){
}
}
//定義執行個體
var xiaoWang = Person()
//執行個體方法的使用
xiaoWang.reduceWeight()
//類方法的使用
Person.run()
10.3 我的經驗總結
對于類方法,除了可以用static關鍵字,還可以用class關鍵字
它倆的差別如下
方法可以用static和class關鍵字,使用static關鍵字時子類不能重寫,使用class關鍵字時子類能重寫
舉例
class Dad{
static func walk(){
print("走路")
}
class func run(){
print("爸爸跑步")
}
}
//輸出爸爸的走路方法
print("Dad.walk() = \(Dad.walk())")
//輸出爸爸的跑步方法
print("Dad.walk() = \(Dad.run())")
//兒子繼承爸爸
class Son : Dad{
//重寫跑步方法,變為輸出資訊:兒子跑步
override class func run(){
super.run()
print("兒子跑步")
}
}
//輸出兒子的走路方法
print("Son.walk() = \(Son.walk())")
//輸出兒子的跑步方法
print("Son.walk() = \(Son.run())")
這裡兒子繼承了爸爸的方法,然後重寫了跑步方法,是以輸出值是不同的。對于走路方法,因為沒有重寫是以輸出值是一樣的。
注:本人水準和能力有限,如果哪些地方寫錯了,請大家給我回報,我會及時修改。