TL;TD: The classical scenario is the "diamond inheritence problem" in which scenario the derived class has two the same inherited methods and the decision of using either is not determined.
Solutions to that differs from language to language. In static languages like c++ and go, explicit overridden is required at compile time. In dynamic language, the resolution order is usually the same as the declaration order at definition. For example, in python def D(B, C): pass, mean B overshadows C.