Swift继承

继承是一种基础行为,将类与Swift中的其他类型区分开来。一个类可以从另一个类继承方法、属性和其他特征。当一个类从另一个类继承时,继承类被称为子类,它继承的类被称为其超类。在Swift中,类可以调用和访问超类的方法和属性、下标脚本,并且可以重写它们。也可以为类中继承来的属性添加属性观察器。

基类

没有继承其他类的类,称为基类。

定义一个基类计算和,例如:

子类

子类是将新类建立在现有类的基础上的行为。子类继承了现有类的特征,然后您可以细化这些特征。您还可以向子类添加新特征。

重写(Overriding)

子类可以通过继承来的实例方法,类方法,实例属性,或下标脚本来实现自己的定制功能,我们把这种行为叫重写(overriding)。

我们可以使用 override 关键字来实现重写。

访问超类的方法、属性及下标脚本,通过使用super前缀来访问超类的方法,属性或下标脚本。方法:super.somemethod(),属性:super.someProperty(),下标脚本:super[someIndex]

重写方法和属性

在子类中我们可以使用 override 关键字来重写超类的方法。

重写属性

你可以提供定制的 getter(或 setter)来重写任意继承来的属性,无论继承来的属性是存储型的还是计算型的属性。

子类并不知道继承来的属性是存储型的还是计算型的,它只知道继承来的属性会有一个名字和类型。所以你在重写一个属性时,必需将它的名字和类型都写出来。

注意点:

如果你在重写属性中提供了 setter,那么你也一定要提供 getter。

如果你不想在重写版本中的 getter 里修改继承来的属性值,你可以直接通过super.someProperty来返回继承来的值,其中someProperty是你要重写的属性的名字。

重写属性观察器

可以在属性重写中为一个继承来的属性添加属性观察器。这样一来,当继承来的属性值发生改变时,你就会监测到。

注意:不可以为继承来的常量存储型属性或继承来的只读计算型属性添加属性观察器。

防止重写

使用 final 关键字防止它们被重写。如果你重写了final方法,属性或下标脚本,在编译时会报错。也可以通过在关键字class前添加final特性(final class)来将整个类标记为 final 的,这样的类是不可被继承的,否则会报编译错误。

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

相关阅读更多精彩内容

  • 继承我们可以理解为一个类获取了另外一个类的方法和属性。 当一个类继承其它类时,继承类叫子类,被继承类叫超类(或父类...
    零度_不结冰阅读 331评论 0赞 0
  • 继承我们可以理解为一个类获取了另外一个类的方法和属性。当一个类继承其他类时,继承类叫子类,被继承类叫超类。(或父类...
    Albert_Li99阅读 2,258评论 0赞 2
  • 1. 基类 没有继承其它类的类,称之为基类(Base Class)。 我们定义了基类 StudDetails ,描...
    我有小尾巴快看阅读 212评论 0赞 2
  • 继承 在Swift中 ,类可以调用和访问超类的方法,属性和下标脚本,并且可以重写这些方法,属性和下标脚本来优化或修...
    繁华落尽丶lee阅读 2,001评论 0赞 3
  • 继承我们可以理解为一个类获取了另一个类的所有方法和属性。当一个类继承其他类时,继承类叫子类,被继承的类叫超类(或父...
    小强七号阅读 168评论 0赞 0

友情链接更多精彩内容