In Chapter 3, we called out three key mechanisms that are required of a programming language in order to be considered truly object-oriented. We've now defined two of the three features required of a true OO language:
(Programmer creation of) User-defined types—discussed in Chapter 3
Inheritance—discussed in this chapter
All that remains is to discuss polymorphism, one of the subjects of an upcoming chapter (Chapter 7, to be precise). We're going to take a bit of a detour first, however, to discuss what we can do to gather up and organize groups of objects as we create them through the use of a special type of object called a collection.