IN THIS CHAPTER, you’re going to look into a topic that lies at the heart of object-oriented programming: inheritance. Inheritance is the means by which you can create new classes by reusing and expanding on existing class definitions. Inheritance is also fundamental to making polymorphism possible, and polymorphism is a basic feature of object-oriented programming. I'll discuss polymorphism in the next chapter, so you what you'll learn there is an integral part of what inheritance is all about. There are subtleties in inheritance that I'll tease out using code that shows what is happening.