“Has a” relationship:
Represents instance variables in a class.

“Is a” relationship:
One class is more specific than another, for example, student and person.
A student is a MORE specific example of a person.
NOT every person is a student.
SO
The relationship is not symmetrical.

Superclass:
ONE big class instead of more different classes.
But then subclasses can have access to public instance variables of the superclass.
The Super Class is the only one that needs the Universal instance variables and methods.
The Sub Classes are the ones that need the “extends” keyword.

Hierarchy:
Subclasses can also have subclasses of their own.

EVERY TIME we create a subclass object we ALSO make a superclass object.

Subclasses NEED their own constructors, which are either made manually or the no-argument constructor is called by Java.

super() keyword:
Superclass constructor that takes in the parameters that aren’t present in the subclass.
ON THE FIRST LINE OF THE CONSTRUCTOR!!!