美文网首页
Swift:static与class异同点

Swift:static与class异同点

作者: 春暖花已开 | 来源:发表于2018-12-13 08:59 被阅读9次
相同点
  • 可以修饰方法,static 修饰的方法叫做静态方法,class 修饰的叫做类方法。
  • 都可以修饰计算属性。
不同点
  • class 不能修饰存储属性。
  • class 修饰的计算属性可以被重写,static 修饰的不能被重写。
  • static 可以修饰存储属性,static 修饰的存储属性称为静态变量(常量)。
  • static 修饰的静态方法不能被重写,class 修饰的类方法可以被重写。
  • class 修饰的类方法被重写时,可以使用static 让方法变为静态方法。
  • class 修饰的计算属性被重写时,可以使用static 让其变为静态属性,但它的子类就不能被重写了。
  • class 只能在类中使用,但是static 可以在类,结构体,或者枚举中使用。
  • 有一个比较特殊的是protocol。在Swift中class、struct和enum都是可以实现protocol的。那么如果我们想在protocol里定义一个类型域上的方法或者计算属性的话,应该用哪个关键字呢?答案是使用class进行定义,但是在实现时还是按照规则:在class里使用class关键字,而在struct或enum中仍然使用static,虽然在protocol中定义时使用的是class。

相关文章

网友评论

      本文标题:Swift:static与class异同点

      本文链接:https://www.haomeiwen.com/subject/soxvhqtx.html