加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

13.7 Swift关于便利构造方法“重写”的讨论

发布时间:2020-12-14 06:31:16 所属栏目:百科 来源:网络整理
导读:/** 13.7- 关于便利构造方法 “ 重写 ” 的讨论 .mp4 重写成一个便利构造方法 Swift 语言中便利构造方法不能重写。因为它是横向的 */ class Human { let name: String var age: Int init (name: String ,age: Int ) { self . name = name self . age = age }

/**

13.7-关于便利构造方法重写的讨论.mp4

重写成一个便利构造方法

Swift语言中便利构造方法不能重写。因为它是横向的

*/

class Human {

let name: String

var age: Int

init(name: String,age: Int) {

self.name = name

self.age = age

}

convenience init() {

self.init(name: "",age: 0)

}

}

class Woman: Human {

var haveBaby: Bool = false

// 派生类中定义一个构造方法,它跟父类中的某个指定构造方法一样

// override init(name: String,age: Int) {

// haveBaby = false

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

// }

init(name: String,age: Int,haveBaby: Bool) {

self.haveBaby = haveBaby

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

}

// 派生类中用便利构造方法重写父类中的指定构造方法

// convenience override init(name: String,0)"> // self.init(name: name,age: age,haveBaby: false)

// }

// 派生类中用便利构造方法重写父类中的便利构造方法

// Initializer does not override a designated initializer from its superclass,Swift语言便利构造方法中不存在重写

// convenience override init() {

// self.init(name: "",age: 0,0)"> // }

// 这个是当前类中的便利构造方法

convenience init() {

self.init(name: "",age: 0,haveBaby: false)

}


}

var w0 = Woman.init(name: "d",haveBaby: true)

var w1 = Woman.init()

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读