jargon

Design patterns·Objects, messages and the principles

two parents both define the method and the language has to pick one, and which one is a rule you had to look up.

Diamond problem

Also calleddeadly diamond, multiple inheritance ambiguity

The ambiguity when a class inherits the same member along two different paths from a shared ancestor. It is the standard reason a language bans multiple inheritance of implementation and offers interfaces or mixins with an explicit resolution order instead. Knowing the term matters mostly for reading a linearisation error message and for the interview question about why one language allows it and another does not.

Commonly confused with