回答
一個類別爲類添加了額外的功能,根本沒有生成一個新的類,只是擴展它,但它沒有隱含或任何喜歡它的多態性。
另一方面,繼承會自行生成一個新類,您可以通過多態性添加新的實例變量並覆蓋父類的行爲。
我還要補充說,在一個類別中,你不能添加實例變量,而在一個子類中你可以。 – jmstone617 2012-04-26 20:27:40
雖然Category是向基類添加功能的好方法,但像我這樣的來自其他面向對象技術(例如Flash)的人員會發現有點難以理解這個東西與繼承鏈的關係。同樣的問題出現在我的腦海裏,我對這個話題做了一個快速的研究。
最後一件事是類別和它講述的是同一件事。它爲基類添加了功能。如果你還記得這一點,那麼就不會有任何困惑。
那麼,爲了理解,讓我們舉個例子。假設有一個類A,而類B是類A的一個子類。在應用程序類B中使用了很多地方。現在,需要爲類A添加更多功能,因此新類別被寫爲「A + newRole」。一旦編寫了這個類,新的功能被添加到基類中,在這種情況下,就是A類。這意味着,所有那些類A的子類,比如B類的類自動獲得該功能。這嚇壞了。可以直接繼續,並從子類中調用添加到Category中的新方法。這裏唯一需要的是將類別文件導入到適當的位置。
很好的解釋@Mayank – iSwaroop 2014-12-09 11:18:59
好吧。子類和類別呢? – 2016-03-30 18:31:49
- 1. java類繼承和javabean繼承之間有什麼區別?
- 2. 類別和繼承有什麼區別和使用?
- 3. Python繼承:有什麼區別?
- 4. #import和繼承有什麼區別?
- 5. 繼承和java豆有什麼區別?
- 6. ,繼承和擴展有什麼區別?
- 7. 繼承時抽象類和非抽象類有什麼區別
- 8. 抽象類和繼承之間有什麼區別?
- 9. 繼承和類的擴展有什麼區別?
- 10. 繼承和抽象類有什麼區別?
- 11. UML中的構造型和類繼承有什麼區別?
- 12. 繼承類別鏈
- 13. 在JavaScript中寄生組合繼承和組合繼承有什麼區別?
- 14. 如何處理繼承類的區別?
- 15. 繼承ApiController與IHttpController之間的區別
- 16. wordpress類別與分類有什麼區別?
- 17. 這些繼承檢查有什麼區別?
- 18. CSS繼承和初始之間有什麼區別?
- 19. 這兩種繼承策略有什麼區別?
- 20. Apache Maven:繼承,聚合和依賴之間有什麼區別?
- 21. 在CSS中,級聯和繼承有什麼區別?
- 22. maven中的繼承和子模塊概念有什麼區別?
- 23. 這兩種繼承之間有什麼區別?
- 24. 繼承和多態之間有什麼區別?
- 25. 這兩個原型繼承的實現有什麼區別?
- 26. 繼承和實例化有什麼區別?
- 27. 繼承和協作圖有什麼區別?
- 28. 爲什麼std :: ios_base :: failure有兩個繼承圖,有什麼區別?
- 29. 數據存儲類別與字符串:有什麼區別?
- 30. 有什麼區別
[至少有一些](http://stackoverflow.com/search?q=%5Bobjc%5D+inheritance+category)現有問題:http://stackoverflow.com/questions/522341/difference-在繼承和類別在目標C,http://stackoverflow.com/questions/9343670/what-is-the-actual-use-of-categories-instead-of-inheritance以及文檔,這會爲你解答。 – 2012-04-26 19:03:34