在不考慮一切繼承、分類的最簡(jiǎn)單最普通的情況下:
- 調(diào)用時(shí)刻:
load:程序啟動(dòng)時(shí),類被加載進(jìn)內(nèi)存就調(diào)用
initialize:當(dāng)?shù)谝淮问褂眠@個(gè)類或者其子類就會(huì)調(diào)用
- 調(diào)用次數(shù)
load:因?yàn)榧虞d進(jìn)內(nèi)存只會(huì)加載一次氧卧,所以也只會(huì)調(diào)用一次
initialize:不確定,具體根據(jù)子類和具體調(diào)用情況
比如有個(gè)類,它有一個(gè)子類,第一次使用子類時(shí),父類的initialize會(huì)被調(diào)用2次
上面說(shuō)的只是普通情況救拉。但是呢,一個(gè)類可能繼承于某個(gè)super類腐缤,還有可能有自己的分類捌归,如果分類中也實(shí)現(xiàn)了load方法,它們的調(diào)用順序是怎么樣的呢岭粤?
這里需要知道--->覆蓋方法在分類中的體現(xiàn)
如果父類本身中的方法在子類中被重寫(xiě)惜索,則會(huì)優(yōu)先執(zhí)行子類中的方法
如果類本身中的方法在分類中被重寫(xiě),則會(huì)優(yōu)先執(zhí)行分類中的方法
但是這里必須要知道一個(gè)特例->+load
系統(tǒng)首先會(huì)調(diào)用 super類的load方法剃浇,然后再調(diào)用該類自身的load方法巾兆,再次才會(huì)調(diào)用該類的分類重寫(xiě)的load方法,也即是說(shuō)整個(gè)繼承鏈包括分類擴(kuò)展中的load方法都會(huì)被執(zhí)行虎囚,只是執(zhí)行順序需要關(guān)注一下臼寄。