国模资源独家奉送[166p,oneg-002,爸爸去哪儿 几点
swift中的子类构造函数的来源有两种:自己编写和从父类继承。并不是父类的所有的构造函数都能继承下来,能够从父类继承下来的构造函数是有条件的,如下所示。class person { var name: string var age: int func description() -> string { return "\(name) 年龄是: \(age)" } convenience init () { self.init(name: "tony") self.age = 18 } convenience init (name: string) { self.init(name: name, age: 18) } init (name: string, age: int){ self.name = name self.age = age } } class student: person { var school: string init (name: string, age: int,school: string) { self.school = school super.init(name: name, age: age) } convenience overrideinit (name: string,age: int) { self.init(name: name, age: age, school: "清华大学") } } class graduate: student { var special: string = "" }
来看看符合条件1的继承,graduate继承student,graduate类没有定义任何指定构造函数,它将自动继承所有student的指定构造函数。符合条件1后,graduate从student继承了如下指定构造函数:
init (name : string, age : int,school : string)
再看符合条件2的继承,由于graduate实现了student的所有指定构造函数,graduate将自动继承所有student的便利构造函数。符合条件2后,graduate从student继承了如下3个便利构造函数:
init (name: string, age: int) init (name: string) init ()
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
网友评论