Each variable has a number, the offset of that variable within the piece of memory that represents an object. Variables are looked up by offset.

If C is a class with variable v, then v has the same offset in every subclass of C as it has in C, so code in all subclasses find v in the same way. New variables are added to the end of the memory chunk of an object.

That idea does not work for a multiple-inheritance language.