Swift文档Chapter 13 继承


一个类可以继承另一个类的方法,属性和其他特性。继承类叫做子类,被继承类叫做超类或者父类。继承只有类可以做到。

定义一个基类

不继承别的类的类称为基类。Swift中的类不会默认继承一个基类(和Java的object类不同)。

子类生成

对一个类定义超类的方法是在类名后加上冒号标注超类。

class SomeClass: SomeSuperclass {
    // 这里是子类的定义
}

子类也可以被其他类继承。

重写

把继承来的实例方法,类方法,实例属性,类属性或者下标提供自己的实现称为重写
如果要进行重写,必须使用override关键字,否则就会报错。

超类的方法,属性及下标访问

超类的访问使用super进行访问,可以使用点运算符访问方法和属性或者用方括号访问下标。

重写方法

直接在func属性前加上override就可以重写。

重写属性

重写属性的Getter和Setter

任何属性都可以被重写,不论是存储型还是计算型。检查器只会检查名字和类型是否是一致的。只读类型可以重写为读写属性,只要声明了getter和setter即可,但是读写属性不可以重写为只读属性。只需将override写在let或者var之前即可。

重写属性观察器

常量存储型和只读计算型属性不可以添加观察器。不可以同时提供重写的setter和重写的属性观察器,直接在重写的setter中实现属性检查器的功能即可。

防止重写

使用final关键词可以防止重写。在属性,方法下标声明前加入就可以防止重写。如果在整个类前使用,那么这个类不可以被继承。