swift-汇编分析多态原理、init

一、结构体和类的本质区别

结构体 编译完就知道调用谁

类 (类似c++ 的虚函数表) 12

直接将对象将来要调用的函数内存地址提前放进类型信息里面,这些类型信息编译完就确定你将来要调用谁,运行过程过程中就去那块内存里面找

方法的存储

二、初始化器 指定初始化器纵向调用 捷初始化器横向调用

2.1 便捷初始化器 必须要调用指定初始化器

初始化器

每一个初始化器保证我每个成员都是要有值的

类偏向于少量指定初始化器,一个类通常只有一个指定初始化器

指定初始化器必须从它的直系父类调用指定初始化器

便捷初始化器最终必须调用一个指定初始化器

便捷初始化器可以调用自己的宁一个便捷初始化器

二、初始化器的相互调用

三、两段式初始化 1.25

先从下往上(保证所有的成员都有值)在从上往下(设置个性话的值)

四、安全检查

五、重写 1.56

当重写父类的指定初始化器时,必须加上override(即使子类的实现是便捷初始化器)

如果子类写了一个匹配父类便捷初始化器的初始化器,不用加上override

因为父类的便捷初始化器永远不会通过子类直接调用,因此,严格来说,子类无法重写父类的便捷初始化器

六、自动继承

如果子类没有自定义任何指定初始化器,它会自动继承父类所有的指定初始化器

如果子类提供了父类所有指定初始化器的实现(要么通过方式①继承,要么重写)

子类自动继承所有的父类便捷初始化器

就算子类添加了更多的便捷初始化器,这些规则仍然适用

相关推荐
188号安全攻城狮7 小时前
【PWN】HappyNewYearCTF_9_ret2syscall
linux·汇编·安全·网络安全·系统安全
万法若空9 小时前
Vim常用指令汇编
汇编·编辑器·vim
请输入蚊子1 天前
«操作系统真像还原» 第二章 编写MBR主引导记录
linux·汇编·操作系统·bochs·操作系统真像还原
188号安全攻城狮1 天前
【PWN】HappyNewYearCTF_8_ret2csu
linux·汇编·安全·网络安全·系统安全
切糕师学AI4 天前
ARM 汇编指令系列文章导读
汇编·arm开发
果粒蹬i4 天前
从割裂到融合:MATLAB与Python混合编程实战指南
开发语言·汇编·python·matlab
AUVpwoxkW6 天前
关键词:混合储能,VMD,麻雀搜索算法,遗传算法,混合储能容量配置优化,混合储能功率分配
汇编
取个名字太难了a6 天前
x64(一)
汇编
xiaobuding_QAQ7 天前
51汇编仿真proteus8.15学习篇四(附源码)
汇编·单片机·学习·proteus
xiaobuding_QAQ7 天前
51汇编仿真proteus8.15学习篇三(附源码)
汇编·单片机·学习·proteus