Swift中初始化方法的顺序介绍
方法 介绍 初始化 顺序 swift
2023-06-13 09:15:39 时间
与Objective-C不同,Swift的初始化方法需要保证类型的所有属性都被初始化。所以初始化方法的调用顺序就很有讲究。在某个类的子类中,初始化方法里语句的顺序并不是随意的,我们需要保证在当前子类实例的成员初始化完成后才能调用父类的初始化方法:
classCat{
varname:String
init(){
name="cat"
}
}
classTiger:Cat{
letpower:Int
overrideinit(){
power=10
super.init()
name="tiger"
}
}
一般来说,子类的初始化顺序是:
1.设置子类自己需要初始化的参数,power=10
2.调用父类的相应的初始化方法,super.init()
3.对父类中的需要改变的成员进行设定,name="tiger"
其中第三步是根据具体情况决定的,如果我们在子类中不需要对父类的成员做出改变的话,就不存在第3步。而在这种情况下,Swift会自动地对父类的对应init方法进行调用,也就是说,第2步的super.init()也是可以不用写的(但是实际上还是调用的,只不过是为了简便Swift帮我们完成了)。这种情况下的初始化方法看起来就很简单:
classCat{
varname:String
init(){
name="cat"
}
}
classTiger:Cat{
letpower:Int
overrideinit(){
power=10
//虽然我们没有显式地对super.init()进行调用
//不过由于这是初始化的最后了,Swift替我们完成了
}
}
相关文章
- 【说站】js数组中find方法的介绍
- JavaScript 对象所有方法介绍,看这一篇就够了!
- Uncaught SyntaxError: Cannot use import statement outside a module的解决方法(使用Es6语法引入js对象文件报错)
- 环信API方法介绍
- 深入浅出:基于Oracle的表格创建方法(oracle如何创建表)
- 数据库解决Oracle数据库无法加载的方法(无法加载oracle)
- 使用 Linux 进行键值获取的方法介绍(linux获取键值)
- 类C中MySQL数据库实体类的构建方法介绍(C mysql数据库实体)
- MySQL常用函数机能介绍及使用方法(MySQL一些函数)
- Oracle事务库的使用方法介绍(oracle事务库怎么用)
- 错误类型:Provider(0x80004005)未指定的错误的一个处理方法
- 数组方法解决JS字符串连接性能问题有争议
- PHPdaddslashes使用方法介绍
- C#简单获取屏幕鼠标坐标点颜色方法介绍
- String.indexOf方法介绍
- C#下解析HTML的两种方法介绍
- C++字符串的反转五种方法实例
- ExtJS4中的requires使用方法示例介绍
- JS动态调用方法名示例介绍
- mysql中show指令使用方法详细介绍
- javascript将浮点数转换成整数的三个方法