Here is another problem caused by inheritance. Many linkers want to have unique names. But in object-oriented languages different classes are allowed to have functions with the same name. Some languages, such as C++, even permit multiple functions with the same name within a single class.
The solution to this problem is that internally functions are known by a different internal name. Typically this name encodes both the class and the function name, sometimes even the argument types.