Swift 中的继承 与 重写

来源:互联网 发布:手机上怎么找淘宝链接 编辑:程序博客网 时间:2024/06/05 18:45

Swift 继承:

  • 面向对象编程语言的一个重要的功能就是继承,继承的主要描述就是类与类的关系,通过继承可以在不必重写类的情况下,使用原有类的功能和进行扩展

继承的实现

  • 属性的继承
  • 方法的继承
  • 属性观察器的继承
  • 下标脚本的继承(代码中没有写)

代码示例

class Person {    //存储属性    var name = "老王"    //类型属性    static var age = 18    //计算属性    var description : String {        return "我的姓名\(name),年龄:\(Person.age)"    }    //属性观察器    var height : Int = 180 {        willSet {        }        didSet {           Person.age = 20           print("-----\(Person.age)")        }    }    //方法    func run() {        print("正在跑")    }    static func play() {        print("玩篮球")    }}class Stu : Person {}//属性的继承Stu.age//方法的继承Stu.play()let stu1 = Stu()//属性的继承stu1.namestu1.description//属性观察器的继承stu1.height = 160//方法的继承stu1.run()

重写的实现

  • 属性的重写
  • 方法的重写
  • 属性观察器的重写
  • 下标脚本的重写(代码中没有写)

代码示例

class Teacher {    //存储属性    var name = "老王"    //类型属性    class var age : Int {        return 18    }    //计算属性    var description : String {        return "我的姓名\(name),年龄:\(Person.age)"    }    //属性观察器    var height : Int = 180 {        willSet {        }        didSet {            Person.age = 20            print("-----\(Person.age)")        }    }    //方法    func run() {        print("正在跑")    }    class func play() {        print("玩篮球")    }}class tech : Teacher {    var tempName : String = ""    //重写存储属性    override var name: String {        get {            return self.tempName        }        set {            self.tempName = newValue        }    }    //重写计算属性    override var description : String {        return "我的姓名\(name)"    }    //重写类型属性    override class var age : Int {        return 23    }    //重写属性观察    override var height : Int {        willSet {        }        didSet {            Person.age = 20            print("-----\(Person.age)")        }    }    //重写实例方法    override func run() {        print("跑步")    }    //从写类型方法    override class func play() {        print("玩排球")    }}tech.play()tech.agelet t1 = tech()t1.run()t1.height = 200t1.name = "老王"t1.description