Override
1. The key benefit of overriding is the ability to define behavior that's specific to a particular subclass type.
2. You must implement the abstract method in the subclass unless the subclass is also abstract.
3. The overriding method cannot have a more restrictive access modifier. (Think of polymorphism)
4. The argument list must exactly match
5. The return type must be the same as, or a subtype of, the return type declared in the original overridden method in the superclass.
6. Exception: any unchecked exception (runtime) or narrower and fewer checked exceptions
7. cannot override a method marked static. ???