重写

作者: 张_何 | 来源:发表于2018-08-24 17:49 被阅读0次

    重写set get

    • 可以将一个父类的存储属性重写成计算属性
    • 不可以将一个父类的存储属性再重写成存储属性
    • 你可以将一个继承来的只读属性重写为一个读写属性,只需要在重写版本的属性里提供 getter 和 setter 即可。但是,你不可以将一个继承来的读写属性重写为一个只读属性。

    重写属性观察器

    • 不可以为继承来的常量存储型属性或继承来的只读计算型属性添加属性观察器。这些属性的值是不可以被设置的,所以,为它们提供willSet或didSet实现是不恰当。
    • 此外还要注意,你不可以同时提供重写的 setter 和重写的属性观察器。如果你想观察属性值的变化,并且你已经为那个属性提供了定制的 setter,那么你在 setter 中就可以观察到任何值变化了。

    防止重写

    • 可以通过把方法,属性或下标标记为final来防止它们被重写,只需要在声明关键字前加上final修饰符即可
      例如:final var,final func,final class func,以及final subscript
    • 如果你重写了带有final标记的方法,属性或下标,在编译时会报错。在类扩展中的方法,属性或下标也可以在扩展的定义里标记为 final 的。
    • 可以通过在关键字class前添加final修饰符(final class)来将整个类标记为 final 的。这样的类是不可被继承的,试图继承这样的类会导致编译报错。

    相关文章

      网友评论

          本文标题:重写

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