1. 请观察下面两段代码的汇编有什么不同?
class 和 struct 的区别
- 我们首先看 struct 的汇编
struct 汇编代码观察
-
我们再查看 class 的汇编
class 的汇编
-
可以看到,class 的生成的汇编复杂太多了
speak 的真实地址
- 我们可以看到 speak 的真实地址,和我们前面计算所得一致
2. 你理解的多态是什么?
- 同一个类实例对象,在调用同一个方法时,可能会出现
多种的处理态度
同是 anim 实例,同样的 speak 和 eat 方法调用,不同的结果
3. 简单描述下,实例对象,类信息,方法列表三者之间的存储关系?
存储关系
4. 类的初始化器有哪两种?这种设计有什么好处?使用什么关键字来区分?
-
指定初始化器(designated initializer):仅仅支持纵向调用 -
便捷初始化器(convenience initializer):仅仅支持横向调用 - 这种设计是为了
编码安全 - 使用
convenience关键字来定义便捷初始化器
概念
5. 说说什么是 Swift 的两段初始化?两段初始化的目的?(了解有这么个东西即可)
两段初始化
6. 自动继承(了解有这么个东西即可)
自动继承











网友评论