Problem of Similar Classes
When you write a program, you will often find that you have many classes that share code because they're similar to one another. For example, in your Fireworks project - how often did you find yourself copy-pasting large chunks of code?
This is actually a big problem:
To solve this problem, we'll use inheritance. This allows us to define one class - called a superclass - that shares all of its traits with a subclass.
They will automatically "inherit" the classes objects and methods. This means we won't need to define them in the subclass, and can even modify them!
Parent / Child
We also use the term parent class to refer to the superclass, and child class to refer to the subclass. You'll hear those terms used interchangablely; both are acceptable.
In Java, every child has exactly one parent and parents can have an infinite number of children, but do not know that they exist.
Java families are weird.