美文网首页
Load方法执行时机和执行顺序、Initialize方法执行顺序

Load方法执行时机和执行顺序、Initialize方法执行顺序

作者: 傲骨天成科技 | 来源:发表于2022-04-11 11:34 被阅读0次

    Load方法执行时机和执行顺序

    load方法是在main函数前调用的,引入项目中就会调用,且只会调用一次,那么当类和类的Category都有load方法是怎么调用的?类有多个Category,且都实现了load方法又是怎么调用的?子类和父类都实现了load方法是怎么调用的?带着这些问题,我们来看下下面的结论和测试用例。

    结论:
    1.当类和类的Category中的load方法都存在时,先调用类中load方法,然后调用Category中的load方法
    2.父类的load方法优于子类load方法,子类调用load方法的顺序取决于编译的顺序
    3.category的load调用顺序与类没有关系,与编译的顺序一致
    4.类与类的category中的load方法都会调用
    5.当有多个类的时候,同一层级的类的load调用顺序取决于编译顺序。

    Initialize方法执行顺序

    Initialize方法是在类第一次初始化的时候调用的,且只调用一次,但是在子类和父类都是有Initialize方法的时候,是怎么调用的呢?类和Category中都有Initialize又是怎么调用的? 子类没有实现Initialize方法,会不会调用父类的Initialize方法呢?带着这些问题,我们可以看下下面的结论和测试实验。

    结论:
    1.如果类和类Category都实现了initialize方法,调用Category的initialize方法,会覆盖类中的方法,只执行一个,如果多个category,则调用编译顺序最后的initialize方法。

    2.如果父类和子类都实现了initialize方法,在调用子类时,如果父类的initialize方法调用过,则只调用子类initialize方法,如果父类没用过,则先调用父类的Category的initialize方法,在调用子类的initialize方法(测试2)。如果调用子类的时候,已经初始化过父类的initialize,则在初始化父类的时候,不会再调用initialize方法(测试3)

    3.如果子类没有实现initialize方法,父类实现了initialize方法,调用子类的时候,会先调用父类的initialize方法,再调用子类的实例方法。(测试4)

    相关文章

      网友评论

          本文标题:Load方法执行时机和执行顺序、Initialize方法执行顺序

          本文链接:https://www.haomeiwen.com/subject/chhfvltx.html