Different test cases are needed for each context. Inherited features need to be exercised in the unique context of the subclass. We need to retest inherited methods, even if they weren't changed. We need to see that C uses A and B correctly and that C does not produce any side effects which cause failures in A or B. None of this is assured by testing the superclass containing only A and B, or by only testing method C in its subclass. Reuse means never having to say you're sorry.
Every new usage provides ways to misuse a server.
Even if many server object of a given class function correctly, nothing is to prevent a new client class from using it incorrectly. Thus, all client class' use of a server needs to exercised. An interesting corollary is that we can't automatically trust a server because it performs correctly for one client. Black box testing is sufficient. If you do a careful job of test case design using the class interface or specification, you can be assured that the class has been fully exercised.