天天看点

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

这里儿子继承了爸爸的方法,然后重写了跑步方法,所以输出值是不同的。对于走路方法,因为没有重写所以输出值是一样的。

注:本人水平和能力有限,如果哪些地方写错了,请大家给我反馈,我会及时修改。