# 1.12 Objects: Instances of Classes

**Suggested Skills:** 4.A

**LO 1.12.A** — Explain the relationship between a class and an object.

* **1.12.A.1** — An **object** is a specific instance of a class with defined attributes. A **class** is the formal implementation, or blueprint, of the attributes and behaviors of an object.
* **1.12.A.2** — A **class hierarchy** can be developed by putting common attributes and behaviors of related classes into a single class called a **superclass**. Classes that extend a superclass, called **subclasses**, can draw upon the existing attributes and behaviors of the superclass without replacing these in the code. This creates an **inheritance** relationship from the subclasses to the superclass.
  * ❌ **EXCLUSION** — Designing and implementing inheritance relationships are outside scope.
* **1.12.A.3** — All classes in Java are subclasses of the `Object` class.

**LO 1.12.B** — Develop code to declare variables to store reference types.

* **1.12.B.1** — A variable of a reference type holds an **object reference**, which can be thought of as the memory address of that object.
