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

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

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

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

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

方法的存储

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

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

初始化器

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

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

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

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

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

二、初始化器的相互调用

三、两段式初始化 1.25

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

四、安全检查

五、重写 1.56

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

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

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

六、自动继承

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

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

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

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

相关推荐
陈eaten5 小时前
汇编使用AES指令集实现AES解密
汇编·python·aes解密·aes指令集
顾鉴行思12 小时前
10 字符串常量到底存在哪里?
c语言·汇编·经验分享
iCxhust16 小时前
在 emu8086 中可以直接编译运行的完整汇编程序,演示数组的定义、遍历、求和、求最大值。
开发语言·前端·javascript·汇编·单片机·嵌入式硬件·算法
浩浩测试一下1 天前
堆栈中的 参数与局部变量 (逆向分析)
汇编·逆向·免杀·堆栈·windows编程·pe壳
iCxhust1 天前
微机原理实践教程(C语言篇)---A001闪烁灯
c语言·开发语言·汇编·单片机·嵌入式硬件·51单片机·微机原理
浩浩测试一下3 天前
抬栈 恢复上下文 (逆向分析)
汇编·逆向·堆栈·windows核心编程
zhouwy1133 天前
ARM汇编指令集详解
汇编·arm开发
iCxhust3 天前
微机原理实践教程(汇编篇)---A002流水灯
汇编·单片机·嵌入式硬件·51单片机·微机原理
浩浩测试一下3 天前
栈帧 抬栈与平栈 (逆向分析)
汇编·windows api·堆栈·windows编程·windows 开发
陈eaten3 天前
win11下nasm编写汇编及链接方案
汇编·链接·nasm·gcc·golink