swift 继承

继承

  • 类可以从另一个类继承方法,属性和其他特性
  • 当一个类继承自另一个类时,继承类为子类,它继承的类称为其超类
  • 子类可以调用和访问属于其超类的方法,属性和下标,并且可以重写这些方法,属性和下标的自己的重写版本,以优化或修改它们的行为
  • 子类中可以为继承来的属性添加属性观察器,当属性值改变时,类就会被通知到

定义一个基类

class Penson: NSObject {
    var name = ""
    var age = 0
    var height = 0.0
    var weight = 0.0
    
    func dosomething(){
        print("做事情")
    }
}

let per = Person()
per.name = "人民群众"
per.dosomething()    //人民群众做事情

定义子类

class Student: Person {
    var hobby = ""
    func play() {
        print("玩耍")
    }
}

let stu = Student()
stu.name = "小明"
stu.hobby = "游泳"
stu.dosomething()    //小明做事情

重写

使用override关键字为覆盖定义添加前缀

class Student: Person {
    var hobby = ""
    override func dosomething() {
        print("\(name)喜欢\(hobby)")
    }
}

 let stu = Student()
 stu.name = "小明"
 stu.hobby = "游泳"
 stu.dosomething()    //小明喜欢游泳

防止重写

使用final关键字来阻止它被覆盖

class Person: NSObject {
    var name = ""
    var age = 0
    var height = 0.0
    var weight = 0.0
    
    final func dosomething(){
        print("\(name)做事情")
    }
}

这样子类将无法重写dosomething方法,编译器提示错误为Instance method overrides a 'final' instance method

你可能感兴趣的:(swift 继承)