In a simple sense, overriding occurs between different classes in a hierarchy. So, a subclass overrides a method inherited from a parent or an ancestor. So, overriding always involves a hierarchy of some sort. It is through a hierarchy chain, and different behaviors of classes on a common heirarchy chain, that polymorphism is all about. Classes on a hierarchy share behavior, ...