uses and includes are the different avatars of the same concept. uses represents a concept in which one usecases uses the other. So when you invoke the former the latter is always invoked. Extends adds additional functionality, it is used when one objects extends the functionality from another.
Difference: 'uses', 'extends', 'includes'