Difference between categories,subclasses and notifications,delegations
objective-c
Solution
Categories vs. Subclasses
Categories let you expand the API of existing classes without changing their type. Subclassing also expands the API but introduces a new type. Additionally, subclassing lets you add state.
Notifications vs. Delegation
Notifications are a way to let unrelated classes communicate. Delegation on the other hand lets related classes communicate using a more explicitly defined interface.
Problem
I am confusing from these areas.I searched on net.But every site giving different solutions.And i am new for this technology.So please provide corrects differences and definitions for this list.