In the second case, B cannot be used in places where A is expected, it is just designed to bind to a specific A. So, for example, in the first case, A can be abstract, and B can implement missing methods, which makes it clear. This is not possible in the second case, you need "full A", and only then will you add some functions.
So, you can think of the relationship "fits into ..." instead of the relationship "is ...".
Landei
source share