在Objective-C 2.0中,有2種辦法能夠在不使用類繼承的狀況下,擴展已有類的實現。一種是分類(Category),另外一種是類擴展(Class Extensions)。繼承
前者能夠在沒有已有類的源代碼的狀況下擴展類的實現。能夠定義新的方法,但不能定義實例變量。io
後者必須有已有類的源代碼才能實現擴展。可是相比分類,類擴展還能夠定義實例變量,而且隱藏這些信息。也就是說,類擴展是一種定義私有變量和私有方法的手段。變量