11.3 Swift重写方法
/** 重写方法 Swift中可以重写父类方法,也可以重写父类属性 */
class Human { var name: String = "" var id: Int = 0 func eat() -> Void { print("eat") }
func drink() -> Void { print("drink") }
func sleep() -> Void { print("sleep") } }
// 子类 : 基类 class Woman: Human { func birth() -> Void { print("birth") }
// 如果重写方法 需要在最前面加上关键字,override // private override func eat() { print("(name)Woman eat") }
// 派生类中使用基类的方法或属性 func eatAndSleep() -> Void {
// 先在当前类中寻找eat,如果没有再在父类中寻找 eat()
// 告诉当前类去 当前类的父类中寻找方法 sleep super.sleep() birth() } }
let h = Human.init()
let w = Woman.init() w.name = "Tom" w.id = 0987666 // 通过子类的对象调用方法,优先使用本类中的重写方法 w.eat() w.sleep() w.birth()
h.eat() h.sleep() (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |