Actually, late composition (which is the better design approach) says that you don't subclass any containers that have anything in them. You create a class hierarchy for the container and you create classes for the contained objects. Finally you assemble the container with objects and then use that. You amy have many different assembled containers with different objects in them. You never subclass a container that has anything in it.