Discuss declared type and actual type and how they relate to polymorphism.
An object can be declared as the type of the superclass, but be of a subclass type. For example, if you create an array of Students, they can be Graduate or Undergraduate type objects. You can return the actual type of an object at runtime using instanceof. (if ( person1 instanceof undergraduate ))