Object-Oriented Languages
:material-circle-edit-outline: 约 234 个字 :material-clock-time-two-outline: 预计阅读时间 1 分钟
Single Inheritance of Data Fields
单继承:每个子类只有一个父类
field 的顺序也继承,保证同一个 field 的 offset 都是一样的
从下往上依次查找,直到找到为止
动态方法可能被重写
解决方法与 field 类似,按顺序排
Multiple Inheritance
Fields
有多个父类,不能直接用 prefix 了
每一个 field 是唯一的,我们就看哪些父类包含这个 field
有点像寄存器分配
上图中是先排 D,然后再确定各个父类的布局(有哪些 offset)
这样子会导致父类存在内部碎片
将内部碎片限制在类描述符,对象创建时不会创建内部碎片
Method
与 field 同理,用图着色方法
可能会动态载入新的类
Testing Class Membership
例如检查一个对象是不是某个类的对象