关于mixin, 经常被问到一个问题是, 方法查找是如何处理的? 特别地, 如果类, 父类, 以及类所包含的mixin中, 都定义有相同名字的方法时, 会发生什么?

答案是, ruby首先会从对象的直属类中查找, 然后是类所包含的mixin, 之后是超类以及超类的mixin. 如果一个类有多个混入的模块, 最后一个包含的模块将被第一个搜索.

05-11 12:59