swift3-18 继承

继承:我们可以理解为一个类获取了另外一个类的方法和属性。当一个类继承其它类时,继承类叫子类,被继承类叫超类(或父类), 我们也可以为类中继承来的属性添加属性观察器

基类 没有继承其它类的类,称之为基类(Base Class)

子类 子类指的是在一个已有类的基础上创建一个新的类。为了指明某个类的超类,将超类名写在子类名的后面,用冒号(:)分隔,语法格式如下

class baseClass{
    var baseName:String
    init(name:String) {
        self.baseName = name
    }
}
class sonClass:baseClass{
}
sonClass.init(name: "a")

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

class baseClass{
    var baseName:String
    init(name:String) {
        self.baseName = name
    }
}
class sonClass:baseClass{
    var levelStr:String
    override init(name: String) {
        self.levelStr = name.appending("b")
        super.init(name: name)
    }
}

var son =  sonClass.init(name: "a")
son.baseName
son.levelStr

// 防止重写 使用 final 关键字防止它们被重写

 //final 关键字
 final class grandSon:sonClass{
     final var grand:String = ""
     override init(name: String) {
         super.init(name: name)
     }
 }