Swift知识点13 - 继承

Swift中的类并不是从一个通用的基类继承而来。

重写

子类可以为继承来的实例方法,类方法,实例属性,或下标提供自己定制的实现。我们把这种行为叫重写。

访问父类的方法:super.someMethod()
访问父类的属性:super.someProperty

重写属性:
重写继承来的实例属性和类型属性,提供自己的getter和setter,或者添加属性观察器。

可以将继承来的只读属性,重写为读写属性,不能讲读写属性重写为只读属性。

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

防止重写:
使用final修饰符。
你可以通过把方法,属性或下标标记为final来防止它们被重写,只需要在声明关键字前加上 final 修饰符即可(例如:final var,final func,final class func,以及 final subscript)。

你可以通过在关键字 class 前添加 final 修饰符(final class)来将整个类标记为 final 的。这样的类是不可被继承的,试图继承这样的类会导致编译报错。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容