Objective C的继承机制较为灵活的主要原因是因为它使用了一种叫做“消息传递”的机制。在Objective C中,方法调用并不是像其他语言一样静态编译绑定的,而是在运行时动态绑定的。这意味着实例在运行时可以动态决定要调用哪个方法,因为调用的是方法名,而不是函数名。因此,它允许一个子类从多个父类中继承方法和属性,而且还可以通过分类来扩展已有的类。
同时,Objective C的消息传递机制还允许我们通过发送消息来动态继承方法,这可以在运行时动态地添加、删除或替换方法。这也就是为什么我们可以在运行时通过一个消息让对象执行相应的方法,从而实现动态继承。