When a subclass is created, the virtual method table for the subclass is first copied from the parent class, and then extended. Methods that are inherited thus end up pointing to the same function, in the same location, as methods in the parents virtual method table. Methods that are overriden occupy the same location, but point to the new code for the child class, not the code for the parent class.