Flip said:
I'm sorry for maybe a dumb question, but what's the difference between
hidden and overridden?
Both involve name resolution / member access, but overriding implies
polymorphic behavior whereas hiding implies non-polymorphic behavior. A
hidden member is normally still accessible by use of an appropriately
qualified name or other trick; an overridden member may not be directly
accessible at all.
In Java, overriding applies exclusively (and always) to non-static
methods that have the same name and signature as methods in a superclass
of their class. Any other name collision between subclasses and their
superclasses results in hiding the superclass' relevant member.
Accesses of hidden members can often be resolved at compile-time, but
when there is a possibility of a method being overridden the method
dispatch must be deferred to runtime.
John Bollinger
(e-mail address removed)