HRExecutive is an example of how to refer to an object by its base type
variable.
This CODE DOES NOT COMPILE BY DESIGN!

This is an example of how a defined variable of a parent class cannot access
the child classes methods or variables as it only understand the parent class
variables, methods and signatures.
Corrected access, program complies again. :)
Example of how a defined variable with a method signature doesn't know about the fields from a derived class.
Example of how a variable defined as a Interface only understand that object's methods from the interface and not any derived classes fields or methods.
Example of how you can use Collections classes like ArrayList as well as
Arrays to create a collection/list of objects as long as they share a base
class or interface.