-
對象方法:
- 會先在實例的類里找對應的實例方法,如果沒有則向父類的類里找,一直找到根類,一直沒有,則會拋出異常。(能夠找到父類是通過superclass指針)。
-
類方法:
- 在當前類的元類里找對應的類方法,沒有找到則會向父類元類里找,一直找到根類的元類,如果還是沒有,根類的元類則會去當前元類的類對象里去找,(雖然類對象里存的是實例方法,但是send_message的本質并不區分是類方法還是實例方法,只要找到同名的就會去調用。所以當調用一個類方法,但是當前類方法一直到NSObject都沒去實現這個類方法,但是NSObject卻實現了同名的實例方法,這個實例方法最后會被調用)。
image.png