代码改变世界

Swift继承

2019-07-28 13:55  iCoderHong  阅读(250)  评论(0编辑  收藏  举报

概述

Swift并没有想OC、Java那样的规定:任何类最终都要继承某个基类(没有父类的类,称为:基类)

Swift中值类型(枚举、结构体)不支持继承,只有类支持继承

子类可以重写父类的下表、方法、属性,重写时必须加上 override关键字

重写类型方法

class修饰的类型方法、下标,允许被子类重写

static修饰的类型方法、下标,不允许被子类重写

重写属性

  • 子类可以将父类的属性(存储、计算)重写为计算属性
  • 子类不可以将父类的属性重写为存储属性 
  • 只能重写var属性,不能重写let属性
  • 重写时,属性名、类型要一致
  • 子类重写后的属性权限不能小于父类的属性权限
  •   如果父类属性是只读的,那么子类重写后的属性可以是只读的、也可以是可读写
  •   如果父类属性是可读写的,那么子类重写后的属性也必须是可读写