I have a class (Class A) which contains objects of type Class B. Class B has three subclasses.
Should Class B actually be an interface and then I can draw an aggregation association between the interface and Class A (and the three subclasses implement the interface)
or
Should Class B, be an actual Class, have 3 sub-classes and all four of the classes (Class B + 3 subclasses) implement the interface (through Class B)?
I would say to ask yourself these questions:
1. Would you ever create an instance of Class B? If yes, then it should be a regular class. If not,
2. Should class B contain any functionality that the derived classes should be able to use? If yes you should create an abstract class that the other classes inherit, if no, make it an interface.