| Term | Definition |
| inheritance | defines the relationship between objects that share characteristics where subclass inherits characteristics of its superclass |
| inheritance hierarchy | subclass is-a parent class |
| method overriding | methods inherited from the parent class are redefined by the child class, method must have the same return type, and signature |
| partial overriding | part of the original method is retained from the parent class, includes call to super |
| polymorphism | mechanism of selecting the appropriate method for a particular object in a class hierarchy. |
| polymorphic | a method that has been overridden in at least one subclass |
| dynamic binding / late binding | making a run-time decision about which instance method is to call. selection occurs during the run of the program. run-time environment determines how, which form to be called |
| static binding / early binding | selects the correct method to overload at compile time by comparing the methods; signatures. compiler determines if a method can be called, legal, has the correct parameters |
| downcast | casting a superclass to a subclass type |
| ClassCastException | run-time exception thrown to signal an attempt to cast an object to a class of which it is not an instance |
| abstract class | a superclass that represents an abstract concept, cannot create an instance of an abstract class. can have both abstract and nonabstract variables. |
| abstract methods | just a header, every subclass needs to override this method |
| interface | collection of related methods whose headers are provided without implementation |