If I have an object that inherits, I might say:
Object.Func() // Method implemented by base class.
If I have an object that uses composition, I might say:
ObjectA.ObjectB.Funct() // Using method of Object B.
There are dependencies in both cases. Composition simply changes the way the dependencies are distributed across a set of objects.
* Inheritance is getting something from you parents.
* Composition is getting something from your children.
Both are valuable strategies in systems design. It seems to me that your apparent dislike of inheritance is motivated by the fact that it's currently trendy to dislike inheritance, rather than having any rational / well-reasoned technical motivation.