swift - 小专题 - class和static 关键字区别

  • 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
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

推荐阅读更多精彩内容

  • 这是16年5月份编辑的一份比较杂乱适合自己观看的学习记录文档,今天18年5月份再次想写文章,发现简书还为我保存起的...
    Jenaral阅读 1,316评论 0 7
  • SwiftDay011.MySwiftimport UIKitprintln("Hello Swift!")var...
    smile丽语阅读 2,216评论 0 6
  • 2014年的苹果全球开发者大会(WWDC),当Craig Federighi向全世界宣布“We have new ...
    yeshenlong520阅读 936评论 0 9
  • Swift官方文档的词汇结构中, 有非常多的关键字, 它们被用于声明中、语句中、表达式中、类中、模式中, 还有以数...
    小宇宙_fly阅读 146评论 0 2
  • 渲染: 1 当前屏幕渲染:在GPU的当前屏幕缓冲区中进行的渲染 2 离屏渲染:在GPU当前屏幕缓冲区外另建缓冲区渲...
    adrian920阅读 69评论 0 0