第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())")
这里儿子继承了爸爸的方法,然后重写了跑步方法,所以输出值是不同的。对于走路方法,因为没有重写所以输出值是一样的。
注:本人水平和能力有限,如果哪些地方写错了,请大家给我反馈,我会及时修改。