检查 Apple 的开源消息调度代码,我注意到对 super 的调用使用了一个包含实例的结构和一个它应该从中找到超类方法的类。
这是否意味着编译器必须通过添加调用它的类将消息显式更改为超级?
并且给定一些类树,其中 C 扩展 B 扩展 A,并且它们都实现了一个m
调用的方法[super m]
,我们在运行时创建扩展 A 的 D,获取 C 的实现m
作为 D 使用;[d m]
实际上会调用所有 D、 B和 A 的方法m
,而不仅仅是 D 和 A?
检查 Apple 的开源消息调度代码,我注意到对 super 的调用使用了一个包含实例的结构和一个它应该从中找到超类方法的类。
这是否意味着编译器必须通过添加调用它的类将消息显式更改为超级?
并且给定一些类树,其中 C 扩展 B 扩展 A,并且它们都实现了一个m
调用的方法[super m]
,我们在运行时创建扩展 A 的 D,获取 C 的实现m
作为 D 使用;[d m]
实际上会调用所有 D、 B和 A 的方法m
,而不仅仅是 D 和 A?