如果是load方法
- 1.load方法的調用是在main()函數之前,且不需要主動調用,程序啓動時就會去執行load方法
- 2.主類與分類加載都會調用load方法,並且主類調用永遠優先於分類調用
- 3.如果是多個分類的情況下,分類的調用順序取決於編譯順序,如果分類先調用則先加載,後調用則後加載
- 4.整體總結就是load方法的調用規則是,主類(父類)優先於子類調用,子類優先於分類調用(父類>子類>分類)
如果是普通方法
- 1.普通方法調用時,分類中的同名方法會覆蓋主類的方法,進而執行分類中的功能
- 2.多個分類中出現同名方法時,只會執行一個,最後調用的分類中的方法會覆蓋之前所有的同名方法
- 3.分類中的方法名和主類方法名一樣會報警告,大概就是說分類中實現的方法主類已經實現了
- 4.可以把聲明寫在主類, 實現寫在分類,這樣也能調用到分類裏面的代碼
- 5.同樣可以把聲明和實現寫在不同的分類文件中,還是能找到的, 不過主類要相同
- 6.普通方法的優先級: 分類> 子類 > 父類, 優先級高的同名方法覆蓋優先級低的
initialize
- 當第一次用到類的時候, 如果重寫了+ initialize方法,會去調用
- 當調用子類的+ initialize方法時候, 先調用父類的,如果父類有分類, 那麼分類的+ initialize會覆蓋掉父類的, 和普通方法差不多
- 父類的+ initialize不一定會調用, 因爲有可能父類的分類重寫了它