当Category遇到Inherit

来源:互联网 发布:知乎水族箱品牌 编辑:程序博客网 时间:2024/06/01 11:56

我们知道在Category可以给动态的给一个类添加方法实现,这样我们可以很方便的把一个大类拆分成很多个子模块,而且Category里面的方法会覆盖基本类里面同名的方法。然而有一种特殊情况,当Category和子类中,同时覆盖了基本类里面的方法的时候,通过子类的实例对象调用该方法,实际上会调用哪一个方法呢?实际上,在OC中,一个类的加载顺序是这样的,加载基类中的方法->加载Category中的方法->加载子类的方法。所以我们通过子类的实例对象调用的其实是子类自己的方法!