To answer the question, in particular, how redefinition is implemented in a virtual machine, there is an entry available in Programming for a Java virtual machine (Google Books Link).
The VM will look for a suitable method definition in the reference class, and then pave the way through the inheritance stack. Obviously, at some stage various optimizations will be applied.
See here for a description of the corresponding bytecode instruction invokevirtual:
invokevirtual ( ). . objectref . objectref - . invokevirtual Java objectref , , methodname, - .
gustafc , , , , JIT .