程序员iOS 的那些事儿

Swift-重写与重载的使用和比较

2018-04-24  本文已影响168人  热干面一元五

1.重载:

2. 重写:

创建Person类

class Person: NSObject {

    var name: String // 姓名
    var age: Int     // 年龄

    // 构造函数
    init(name: String,age: Int) {
        self.name = name
        self.age  = age
        // 必须在 super.init() 之前 初始化对象
        super.init()
    }
}

通过重写方法为其添加 “lesson” 属性

class Student: Person {

    var lesson: String

    /// 重写
    ///
    /// - Parameters:
    ///   - name: 姓名
    ///   - age:  年龄
    override init(name: String, age: Int) {

        lesson = "Python" // 必须放在super.init()之前

        super.init(name: name, age: age)

    }
}

/// 重写实例化的对象
let s = Student(name: "Joyce", age: 18)
print(s.lesson) // Python

通过重载方法为其添加 “lesson” 属性

class Student: Person {

    var lesson: String

    /// 重载
    ///
    /// - Parameters:
    ///   - name: 姓名
    ///   - age:  年龄
    ///   - lesson: 课程
    init(name: String, age: Int, lesson:String) {

        self.lesson = lesson

        super.init(name: name, age: age)
    }

}
/// 重载实例化的对象
let s1 = Student(name: "Yang", age: 21, lesson: "iOS")
print(s1.lesson) // iOS  

总结:

上一篇下一篇

猜你喜欢

热点阅读