swift - 小专题 - class和static 关键字区别
2018-09-29 本文已影响29人
AZander
-
class 和 static 相同点
- 1.可以修饰方法,static 修饰的方法叫做静态方法,class修饰的叫做类方法
- 2.都可以修饰计算属性
-
class 和 static 不同点
-
class 不能修饰存储属性
-
class 修饰的计算属性可以被重写,static 修饰的不能被重写
-
static 可以修饰存储属性,static修饰的存储属性称为静态变量(常量)
-
static 修饰的静态方法不能被重写,class 修饰的类方法可以被重写
-
class 修饰的类方法被重写时,可以使用static 让方法变为静态方法
-
class 修饰的计算属性被重写时,可以使用static 让其变为静态属性,但它的子类就不能被重写了
-
class 只能在类中使用,但是static 可以在类,结构体,或者枚举中使用
class Person{ static var describe:String = " 这是一个人类" class var score:Int{ return 0 } static var number:Int{ return 100 } // class 修饰的类方法可以被子类重写,static 修饰的静态方法不能被重写 class func getScore()->Int{ return score } static func aaa() -> Int { return 10 } } class Man: Person { // 重写计算属性 可以使用static 来重写哦,但是static 重写后,就不能被它的子类再次重写了 static override var score:Int{ return 1 } /// 不能重写static修饰的计算性属性 // static override var number:Int{ // return 101 // } // 重写类方法时可以使用static 让其变成静态方法 static override func getScore()->Int{ return score } /// 不能重写static修饰的方法 // static override func aaa() -> Int { // return 10 // } }
-
作者:xiao小马哥
链接:https://www.jianshu.com/p/a53ea12b8009
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。