天天看點

iOS開發(Swift)總結22 - 方法

第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())")
           

這裡兒子繼承了爸爸的方法,然後重寫了跑步方法,是以輸出值是不同的。對于走路方法,因為沒有重寫是以輸出值是一樣的。

注:本人水準和能力有限,如果哪些地方寫錯了,請大家給我回報,我會及時修改。