《从零开始学Swift》学习笔记(Day 42)――构造函数调用规则
原创文章,欢迎转载。转载请注明:关东升的博客 在构造函数中可以使用构造函数代理帮助完成部分构造工作。类构造函数代理分为横向代理和向上代理,横向代理只能在发生在同一类内部,这种构造函数称为便利构造函数。向上代理发生在继承的情况下,在子类构造过程中,要先调用父类构造函数初始化父类的存储属性,这种构造函数称为指定构造函数。 构造函数调用规则 Person和Student类示例: classPerson{ varname:String varage:Int funcdescription()->String{ return"(name)年龄是:(age)" } convenienceinit(){//便利构造函数 self.init(name:"Tony") self.age=18 } convenienceinit(name:String){//便利构造函数 self.init(name:name,age:18) } init(name:String,age:Int){//指定构造函数 self.name=name self.age=age } } classStudent:Person{ varschool:String init(name:String,age:Int,school:String){//指定构造函数 self.school=school super.init(name:name,age:age) } convenienceoverrideinit(name:String,age:Int){//便利构造函数 self.init(name:name,age:age,school:"清华大学") } } letstudent=Student() print("学生:(student.description())") 构造函数之间的调用形成了构造函数链,如图所示。 Swift限制构造函数之间的代理调用的规则有3条,如下所示。
欢迎关注关东升新浪微博@tony_关东升。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- difference between nor flash and nand flash
- 5.6 类和结构两个类型的比较 [Swift原创教程]
- C,C+和C++它们有什么区别
- 【QT示例】XML Schema Validation Example
- c# – 在大型数据绑定ObservableCollection中添加/删除许多
- ORACLE 11G 中采用rman备份异机恢复数据库详细过程
- [转]PostgreSQL分区表(Table Partitioning)应用
- C语言实现BMP转换JPG的方法
- ios – 从NIB加载视图,IBOutletCollection是零,即使其他IBO
- postgresql – 如何在pg_restore期间防止物化视图刷新?