Objects And Inheritance Classes vs. Objects An object is an organization of methods and data during runtime, treated as a single entity. A class is a piece of code that describes how an object is organized. A class may generate hundreds of objects or none at all. However, an object has exactly one class that defines it. If class A inherits from Class B. (We call class B the base class. We call class A the inherited class.) Colloquially, we think an A object as being a special kind of B object. An A object is of class A...but it is also of class B. A B pointer is allowed to point to an A object. (But not the other way around.) Imagine Dog inherits from Animal. This means all Dogs are also Animals. Animal pointers can point to Dogs...but they are still Dogs.